Hi all,

I wrote wrappers for guththila xml reader and guththila xml writer .
pls commit this code .

Thanks

nandika
/*
 *   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_pull_parser.h>
#include <axis2_env.h>
#include <axis2.h>
#include <guththila_xml_pull_parser.h>

/**************** function prototypes ******************************************/



int AXIS2_CALL 
axis2_guththila_wrapper_next(axis2_pull_parser_t *parser,
                             axis2_env_t **env);

        
axis2_status_t AXIS2_CALL 
axis2_guththila_wrapper_free(axis2_pull_parser_t *parser,
                             axis2_env_t **env);
           
        
int AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_count(axis2_pull_parser_t *parser,
                                            axis2_env_t **env);
        
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_name_by_number(axis2_pull_parser_t *parser,
                                                     axis2_env_t **env,
                                                     int i);
        
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_attribute_prefix_by_number(axis2_pull_parser_t *parser,
                                                       axis2_env_t **env,
                                                       int i);
                                                     
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_attribute_value_by_number(
                                                axis2_pull_parser_t *parser,
                                                axis2_env_t **env,
                                                int i);
        
        
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_namespace_by_number(
                                                 axis2_pull_parser_t *parser,
                                                 axis2_env_t **env,
                                                 int i);

                                
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_value(axis2_pull_parser_t *parser,
                                  axis2_env_t **env);
                                                      
int AXIS2_CALL 
axis2_guththila_wrapper_get_namespace_count(axis2_pull_parser_t *parser,
                                            axis2_env_t **env);

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_namespace_uri_by_number(axis2_pull_parser_t *parser,
                                                    axis2_env_t **env,
                                                    int i);
                                               
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_namespace_prefix_by_number(
                                                axis2_pull_parser_t *parser,
                                                axis2_env_t **env,
                                                int i); 
                                                
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_prefix(axis2_pull_parser_t *parser,
                                   axis2_env_t **env);   
        
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_name(axis2_pull_parser_t *parser,
                                 axis2_env_t **env); 

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_pi_target(axis2_pull_parser_t *parser,
                                      axis2_env_t **env);

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_pi_data(axis2_pull_parser_t *parser,
                                     axis2_env_t **env);



/*********** axis2_guththila_wrapper_impl_t wrapper struct   *******************/

typedef struct axis2_guththila_wrapper_impl
{
    axis2_pull_parser_t parser;    
    guththila_xml_pull_parser_t *guththila_parser;
    guththila_environment_t *guththila_env;
    int event_map[10];
    
}axis2_guththila_wrapper_impl_t;

/********************************* Macro ***************************************/

#define AXIS2_INTF_TO_IMPL(p) ((axis2_guththila_wrapper_impl_t*)p)

#define AXIS2_IMPL_TO_INTF(p) &(p->parser)

/**********End macros  --  event_map initializing function *********************/

static axis2_status_t axis2_guththila_wrapper_init_map(
                            axis2_guththila_wrapper_impl_t *parser)
{
    if(parser)
    {
        parser->event_map[GUTHTHILA_START_DOCUMENT] = AXIS2_PULL_PARSER_START_DOCUMENT;
        parser->event_map[GUTHTHILA_START_ELEMENT]  = AXIS2_PULL_PARSER_START_ELEMENT;
        parser->event_map[GUTHTHILA_END_ELEMENT]    = AXIS2_PULL_PARSER_END_ELEMENT;
        parser->event_map[GUTHTHILA_SPACE]          = AXIS2_PULL_PARSER_SPACE;
        parser->event_map[GUTHTHILA_EMPTY_ELEMENT]  = AXIS2_PULL_PARSER_EMPTY_ELEMENT;
        parser->event_map[GUTHTHILA_CHARACTER]      = AXIS2_PULL_PARSER_CHARACTER;
        parser->event_map[GUTHTHILA_ENTITY_REFERANCE] = AXIS2_PULL_PARSER_ENTITY_REFERANCE;
        parser->event_map[GUTHTHILA_COMMENT]          = AXIS2_PULL_PARSER_COMMENT;
        return AXIS2_SUCCESS;
    }
    return AXIS2_FAILURE;
}

/********************************************************************************/

AXIS2_DECLARE(axis2_pull_parser_t *)
axis2_pull_parser_create(axis2_env_t **env,void* stream)
{
    AXIS2_ENV_CHECK(env, NULL);
    
    axis2_guththila_wrapper_impl_t *guththila_impl = 
        AXIS2_MALLOC((*env)->allocator, sizeof(axis2_guththila_wrapper_impl_t));
    
    if(!guththila_impl)
          AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
    
    guththila_allocator_t *allocator  = guththila_allocator_init(NULL);
    guththila_environment_t *guththila_env = guththila_environment_create(
                                              allocator,NULL, NULL, NULL, NULL);
    
    guththila_reader_t *reader = guththila_reader_create(guththila_env,stream);
    
    if(!reader)
    {
        AXIS2_FREE((*env)->allocator,guththila_impl);
        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
    }    
    
    guththila_xml_pull_parser_t *guththila = guththila_xml_pull_parser_create(
                                                guththila_env,reader);
    if(!guththila)
    {
        AXIS2_FREE((*env)->allocator,guththila_impl);
        AXIS2_FREE((*env)->allocator,reader);
        AXIS2_ERROR_SET((*env)->error,AXIS2_ERROR_NO_MEMORY, NULL);
    }
    
    
    guththila_impl->guththila_parser = guththila;
    guththila_impl->guththila_env = guththila_env;
    guththila_impl->parser.ops = NULL;
    guththila_impl->parser.ops = (axis2_pull_parser_ops_t*)AXIS2_MALLOC(
                                      (*env)->allocator,
                                       sizeof(axis2_pull_parser_ops_t));
    if(!(guththila_impl->parser.ops))
    {   guththila_xml_pull_parser_free( guththila_env, guththila);
        AXIS2_FREE((*env)->allocator,guththila_impl);
        AXIS2_FREE((*env)->allocator,reader);
        AXIS2_ERROR_SET((*env)->error,AXIS2_ERROR_NO_MEMORY, NULL);
    }
    
    
    axis2_guththila_wrapper_init_map(guththila_impl);
    
    
/************** operations *****/    
    guththila_impl->parser.ops->next = axis2_guththila_wrapper_next;
    
    guththila_impl->parser.ops->free = axis2_guththila_wrapper_free;
    
    guththila_impl->parser.ops->get_attribute_count =
        axis2_guththila_wrapper_get_attribute_count;
    guththila_impl->parser.ops->get_attribute_name_by_number =
        axis2_guththila_wrapper_get_attribute_name_by_number;
    guththila_impl->parser.ops->get_attribute_value_by_number =
        axis2_guththila_wrapper_get_attribute_value_by_number;
    guththila_impl->parser.ops->get_attribute_prefix_by_number =
        axis2_guththila_wrapper_get_attribute_prefix_by_number;
    guththila_impl->parser.ops->get_attribute_namespace_by_number =
        axis2_guththila_wrapper_get_attribute_namespace_by_number;
    
    guththila_impl->parser.ops->get_value = axis2_guththila_wrapper_get_value;
    guththila_impl->parser.ops->get_name  = axis2_guththila_wrapper_get_name;
    guththila_impl->parser.ops->get_prefix = axis2_guththila_wrapper_get_prefix;
    
    guththila_impl->parser.ops->get_namespace_count =
        axis2_guththila_wrapper_get_namespace_count;
    guththila_impl->parser.ops->get_namespace_uri_by_number =
        axis2_guththila_wrapper_get_namespace_uri_by_number;
    guththila_impl->parser.ops->get_namespace_prefix_by_number =
        axis2_guththila_wrapper_get_namespace_prefix_by_number;

    return &(guththila_impl->parser);
}


int AXIS2_CALL 
axis2_guththila_wrapper_next(axis2_pull_parser_t *parser,
                             axis2_env_t **env)
{
    int i =-1;
    AXIS2_FUNC_PARAM_CHECK(parser,env, -1);
    i = guththila_xml_pull_parser_next(AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
            AXIS2_INTF_TO_IMPL(parser)->guththila_parser); 
    return i == -1 ? -1 : AXIS2_INTF_TO_IMPL(parser)->event_map[i]; 
    
}

        
axis2_status_t AXIS2_CALL 
axis2_guththila_wrapper_free(axis2_pull_parser_t *parser,
                             axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env,AXIS2_FAILURE);
    if(AXIS2_INTF_TO_IMPL(parser)->guththila_parser)
        guththila_xml_pull_parser_free(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env,
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);
    AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(parser)->guththila_env);
    
    if(parser->ops)
        AXIS2_FREE((*env)->allocator, parser->ops);
    AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(parser));
    return AXIS2_SUCCESS;   
}
           
        
int AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_count(axis2_pull_parser_t *parser,
                                            axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser, env, AXIS2_FAILURE);
    return guththila_xml_pull_parser_get_attribute_count(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);
}
        
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_name_by_number(axis2_pull_parser_t *parser,
                                                     axis2_env_t **env,
                                                     int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_attribute_name_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}
        
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_attribute_prefix_by_number(axis2_pull_parser_t *parser,
                                                       axis2_env_t **env,
                                                       int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_attribute_prefix_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}

                                                     
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_attribute_value_by_number(axis2_pull_parser_t *parser,
                                                      axis2_env_t **env,
                                                      int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_attribute_value_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}
        
        
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_attribute_namespace_by_number(
                                                 axis2_pull_parser_t *parser,
                                                 axis2_env_t **env,
                                                 int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_attribute_namespace_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}

                                
axis2_char_t* AXIS2_CALL 
axis2_guththila_wrapper_get_value(axis2_pull_parser_t *parser,
                                  axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_value(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);    
    
    
}
                                                      
int AXIS2_CALL 
axis2_guththila_wrapper_get_namespace_count(axis2_pull_parser_t *parser,
                                            axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, AXIS2_FAILURE);
    return guththila_xml_pull_parser_get_namespace_count(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);    
    
    
}

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_namespace_uri_by_number(axis2_pull_parser_t *parser,
                                                    axis2_env_t **env,
                                                    int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_namespace_uri_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}
                                               
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_namespace_prefix_by_number(
                                                axis2_pull_parser_t *parser,
                                                axis2_env_t **env,
                                                int i)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_namespace_prefix_by_number(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser, i);    
    
    
}
                                                
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_prefix(axis2_pull_parser_t *parser,
                                   axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_prefix(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);    
    
    
}
        
axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_name(axis2_pull_parser_t *parser,
                                 axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(parser,env, NULL);
    return guththila_xml_pull_parser_get_name(
                    AXIS2_INTF_TO_IMPL(parser)->guththila_env, 
                    AXIS2_INTF_TO_IMPL(parser)->guththila_parser);    
    
    
}

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_pi_target(axis2_pull_parser_t *parser,
                                      axis2_env_t **env)
{   
    /* guththila_does not support pi's yet*/
    return NULL;   
 }

axis2_char_t* AXIS2_CALL
axis2_guththila_wrapper_get_pi_data(axis2_pull_parser_t *parser,
                                     axis2_env_t **env)
 {
    /* guththila_dose not support yet */
    return NULL;
 }

/*
 *   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 <guththila_xml_stream_writer.h>
#include <axis2.h>
#include <axis2_env.h>
#include <axis2_xml_writer.h>
/*********************** function prototypes ***********************************/
axis2_status_t AXIS2_CALL 
guththila_xml_writer_wrapper_free(axis2_xml_writer_t *writer,
                                  axis2_env_t **env);
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element(
                                    axis2_xml_writer_t *writer,
                                    axis2_env_t **env,
                                    axis2_char_t *localname);
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_end_start_element(axis2_xml_writer_t *writer,
                                               axis2_env_t **env);
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace(
                                        axis2_xml_writer_t *writer,
                                        axis2_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(
                                        axis2_xml_writer_t *writer,
                                        axis2_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(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname);
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace(
                                        axis2_xml_writer_t *writer,
                                        axis2_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(
                                        axis2_xml_writer_t *writer,
                                        axis2_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(axis2_xml_writer_t *writer,
                                               axis2_env_t **env);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_end_document(axis2_xml_writer_t *writer,
                                               axis2_env_t **env);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute(axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *localname,
                                           axis2_char_t *value);
                                               
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace(
                                          axis2_xml_writer_t *writer,
                                          axis2_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(
                                          axis2_xml_writer_t *writer,
                                          axis2_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(axis2_xml_writer_t *writer,
                                             axis2_env_t **env,
                                             axis2_char_t *prefix,
                                             axis2_char_t *namespace_uri);   


axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_default_namespace
                                            (axis2_xml_writer_t *writer,
                                             axis2_env_t **env,
                                             axis2_char_t *namespace_uri);  

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_comment(axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *value);
                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction(
                                           axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *target);
                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction_data(
                                           axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *target,
                                           axis2_char_t *data);
                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_cdata(axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *data);

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_dtd(axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *dtd); 

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_entity_ref(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *name); 

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env);  

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *version);   

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version_encoding(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *encoding,
                                         axis2_char_t *version);
                                         
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_characters(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *text);   

axis2_char_t* AXIS2_CALL
guththila_xml_writer_wrapper_get_prefix(  axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *uri);

axis2_status_t AXIS2_CALL 
guththila_xml_writer_wrapper_set_prefix(  axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *prefix,
                                         axis2_char_t *uri);
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_set_default_prefix(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *uri);                                                 

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_encoded(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *text,
                                         int in_attr);



/**************************** end function pointers ****************************/

typedef struct guththila_xml_writer_wrapper_impl
{
    axis2_xml_writer_t writer;
    guththila_xml_stream_writer_t *guththila_writer;
    guththila_environment_t *guththila_env;
}guththila_xml_writer_wrapper_impl_t;


/***************************** Macros ******************************************/

#define AXIS2_INTF_TO_IMPL(p) ((guththila_xml_writer_wrapper_impl_t*)p)

/****************************** End macro **************************************/

AXIS2_DECLARE(axis2_xml_writer_t *)
axis2_xml_writer_create(axis2_env_t **env,
                        void *stream,
                        axis2_char_t *encoding, int is_prefix_default)
{
    guththila_xml_writer_wrapper_impl_t *writer_impl;
    guththila_allocator_t *allocator;
  
    
    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, NULL);
    
    
    allocator = guththila_allocator_init(NULL);
    writer_impl->guththila_env = guththila_environment_create(allocator, NULL,  NULL, NULL, NULL);
    writer_impl->guththila_writer = guththila_create_xml_stream_writer(
                                                    writer_impl->guththila_env,
                                                    stream, encoding , 
                                                    is_prefix_default);
                
    if(!(writer_impl->guththila_writer))
    {
        AXIS2_FREE((*env)->allocator,writer_impl);
        AXIS2_FREE((*env)->allocator,allocator);
        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
    }
    
    writer_impl->writer.ops = NULL;
    writer_impl->writer.ops = (axis2_xml_writer_ops_t*)AXIS2_MALLOC((*env)->allocator,
                                    sizeof(axis2_xml_writer_ops_t));
    if(!(writer_impl->writer.ops))
    {
        AXIS2_FREE((*env)->allocator,writer_impl);
        AXIS2_FREE((*env)->allocator,allocator);
        
        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, NULL);
    }
    /* operations */
    writer_impl->writer.ops->free = guththila_xml_writer_wrapper_free;
    writer_impl->writer.ops->write_start_element = guththila_xml_writer_wrapper_write_start_element;
    writer_impl->writer.ops->write_start_element_with_namespace =
            guththila_xml_writer_wrapper_write_start_element_with_namespace;
    writer_impl->writer.ops->write_start_element_with_namespace_prefix = 
            guththila_xml_writer_wrapper_write_start_element_with_namespace_prefix;
    
    writer_impl->writer.ops->write_empty_element = guththila_xml_writer_wrapper_write_empty_element;
    writer_impl->writer.ops->write_empty_element_with_namespace  =
            guththila_xml_writer_wrapper_write_empty_element_with_namespace;
    writer_impl->writer.ops->write_empty_element_with_namespace_prefix =
            guththila_xml_writer_wrapper_write_empty_element_with_namespace_prefix;
    
    writer_impl->writer.ops->write_end_element = 
            guththila_xml_writer_wrapper_write_end_element;
    writer_impl->writer.ops->write_end_document = 
            guththila_xml_writer_wrapper_write_end_document;
    
    writer_impl->writer.ops->write_attribute = 
            guththila_xml_writer_wrapper_write_attribute;
    writer_impl->writer.ops->write_attribute_with_namespace =
            guththila_xml_writer_wrapper_write_attribute_with_namespace;
    writer_impl->writer.ops->write_attribute_with_namespace_prefix =
            guththila_xml_writer_wrapper_write_attribute_with_namespace_prefix;
    writer_impl->writer.ops->write_namespace = 
            guththila_xml_writer_wrapper_write_namespace;
    writer_impl->writer.ops->write_default_namespace =
            guththila_xml_writer_wrapper_write_default_namespace;
    writer_impl->writer.ops->write_comment = 
            guththila_xml_writer_wrapper_write_comment;
    writer_impl->writer.ops->write_processing_instruction = 
            guththila_xml_writer_wrapper_write_processing_instruction;
    writer_impl->writer.ops->write_processing_instruction_data = 
            guththila_xml_writer_wrapper_write_processing_instruction_data;
    writer_impl->writer.ops->write_cdata = 
            guththila_xml_writer_wrapper_write_cdata;
    writer_impl->writer.ops->write_dtd = 
            guththila_xml_writer_wrapper_write_dtd;
    writer_impl->writer.ops->write_entity_ref = 
            guththila_xml_writer_wrapper_write_entity_ref;
    writer_impl->writer.ops->write_start_document = 
            guththila_xml_writer_wrapper_write_start_document;
    writer_impl->writer.ops->write_start_document_with_version = 
            guththila_xml_writer_wrapper_write_start_document_with_version;
    writer_impl->writer.ops->write_start_document_with_version_encoding = 
            guththila_xml_writer_wrapper_write_start_document_with_version_encoding;
    writer_impl->writer.ops->write_characters = 
            guththila_xml_writer_wrapper_write_characters;
    writer_impl->writer.ops->get_prefix =
            guththila_xml_writer_wrapper_get_prefix;
    writer_impl->writer.ops->set_prefix = guththila_xml_writer_wrapper_set_prefix;
    writer_impl->writer.ops->set_default_prefix = 
            guththila_xml_writer_wrapper_set_default_prefix;
    writer_impl->writer.ops->write_encoded = 
            guththila_xml_writer_wrapper_write_encoded;    
    
    
    
    
    
    return &(writer_impl->writer);
}

axis2_status_t AXIS2_CALL 
guththila_xml_writer_wrapper_free(axis2_xml_writer_t *writer,
                                  axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    if(AXIS2_INTF_TO_IMPL(writer)->guththila_writer)
    {     /* should be implemented */}
    if(AXIS2_INTF_TO_IMPL(writer)->guththila_env)
    {    /* should be implemented */ }
    if(writer->ops)
        AXIS2_FREE((*env)->allocator, writer->ops);
    AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(writer));
    return AXIS2_SUCCESS;
}
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element(
                                    axis2_xml_writer_t *writer,
                                    axis2_env_t **env,
                                    axis2_char_t *localname)
{
    int status = AXIS2_SUCCESS;
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, localname, AXIS2_FAILURE);
    status = guththila_xml_stream_writer_write_start_element(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname);
    return status;
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_end_start_element(axis2_xml_writer_t *writer,
                                               axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    return guththila_xml_stream_writer_end_start_element(    
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer);
}
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname,
                                        axis2_char_t *namespace_uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error,namespace_uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_start_element_with_namespace(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname,
                    namespace_uri);
}
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_element_with_namespace_prefix(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname,
                                        axis2_char_t *namespace_uri,
                                        axis2_char_t *prefix)
{
    AXIS2_FUNC_PARAM_CHECK(writer, 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);
    return guththila_xml_stream_writer_write_start_element_with_namespace_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, namespace_uri, prefix);
    
}
                                    
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, localname, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_empty_element(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer, localname);
    
    
}
        
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname,
                                        axis2_char_t *namespace_uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, namespace_uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_empty_element_with_namespace(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, namespace_uri);
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_empty_element_with_namespace_prefix(
                                        axis2_xml_writer_t *writer,
                                        axis2_env_t **env,
                                        axis2_char_t *localname,
                                        axis2_char_t *namespace_uri,
                                        axis2_char_t *prefix)
{
    AXIS2_FUNC_PARAM_CHECK(writer, 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);
    
    return guththila_xml_stream_writer_write_empty_element_with_namespace_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, namespace_uri, prefix);
    
    
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_end_element(axis2_xml_writer_t *writer,
                                               axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_end_element(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer);
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_end_document(axis2_xml_writer_t *writer,
                                               axis2_env_t **env)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_end_document(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer);
    
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute(axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *localname,
                                           axis2_char_t *value)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, localname, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_attribute(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, value);
                        
    
    
}
                                               
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace(
                                          axis2_xml_writer_t *writer,
                                          axis2_env_t **env,
                                          axis2_char_t *localname,
                                          axis2_char_t *value,
                                          axis2_char_t *namespace_uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, 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);
    
    return guththila_xml_stream_writer_write_attribute_with_namespace(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, value, namespace_uri);
}
                                          
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_attribute_with_namespace_prefix(
                                          axis2_xml_writer_t *writer,
                                          axis2_env_t **env,
                                          axis2_char_t *localname,
                                          axis2_char_t *value,
                                          axis2_char_t *namespace_uri,
                                          axis2_char_t *prefix)
{
    AXIS2_FUNC_PARAM_CHECK(writer, 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);
    return guththila_xml_stream_writer_write_attribute_with_namespace_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    localname, value, namespace_uri, prefix);
    
    
    
}
                                          
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_namespace(axis2_xml_writer_t *writer,
                                             axis2_env_t **env,
                                             axis2_char_t *prefix,
                                             axis2_char_t *namespace_uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, namespace_uri, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, prefix , AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_namespace(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    prefix, namespace_uri);

}


axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_default_namespace
                                            (axis2_xml_writer_t *writer,
                                             axis2_env_t **env,
                                             axis2_char_t *namespace_uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, namespace_uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_default_namespace(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    namespace_uri);
    
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_comment(axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *value)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_comment(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    value);
    
}

                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction(
                                           axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *target)
{   
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, target, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_processing_instruction(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    target);
    
    
}    
                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_processing_instruction_data(
                                           axis2_xml_writer_t *writer,
                                           axis2_env_t **env,
                                           axis2_char_t *target,
                                           axis2_char_t *data)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, target, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, data, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_processing_instruction_data(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    target, data);
    
}
                                           
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_cdata(axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *data)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, data, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_cdata(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    data);
                        
}    

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_dtd(axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *dtd)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, dtd, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_dtd(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    dtd);
}

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_entity_ref(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *name)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, name, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_entity_ref(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    name);
    
}    

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env)
{
     AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
     return guththila_xml_stream_writer_write_start_document(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer);
}    

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *version)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, version, AXIS2_FAILURE); 
    return guththila_xml_stream_writer_write_start_document_with_version(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    version);
}    

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_start_document_with_version_encoding(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *encoding,
                                         axis2_char_t *version)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, encoding, AXIS2_FAILURE); 
    AXIS2_PARAM_CHECK((*env)->error, version, AXIS2_FAILURE); 
    
    return guththila_xml_stream_writer_write_start_document_with_version_encoding(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    encoding, version);
}

                                         
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_characters(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *text)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, text, AXIS2_FAILURE); 
    return guththila_xml_stream_writer_write_characters(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer,
                    text);
}    

axis2_char_t* AXIS2_CALL
guththila_xml_writer_wrapper_get_prefix(  axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_get_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer, uri);
                    
    
    
}

axis2_status_t AXIS2_CALL 
guththila_xml_writer_wrapper_set_prefix( axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *prefix,
                                         axis2_char_t *uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, prefix, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_set_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer, prefix, uri);
    
}
axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_set_default_prefix(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *uri)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, uri, AXIS2_FAILURE);
    return guththila_xml_stream_writer_set_default_prefix(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer, uri);
}    

axis2_status_t AXIS2_CALL
guththila_xml_writer_wrapper_write_encoded(
                                         axis2_xml_writer_t *writer,
                                         axis2_env_t **env,
                                         axis2_char_t *text,
                                         int in_attr)
{
    AXIS2_FUNC_PARAM_CHECK(writer, env, AXIS2_FAILURE);
    AXIS2_PARAM_CHECK((*env)->error, text, AXIS2_FAILURE);
    return guththila_xml_stream_writer_write_encoded(
                    AXIS2_INTF_TO_IMPL(writer)->guththila_env,
                    AXIS2_INTF_TO_IMPL(writer)->guththila_writer, text, in_attr);
}

Reply via email to