AXIS2_EXTERN axiom_attribute_t *AXIS2_CALL axiom_attribute_create_str( const axutil_env_t * env, axutil_string_t * localname, axutil_string_t * value, axiom_namespace_t * ns) { axiom_attribute_t *attribute = NULL; AXIS2_ENV_CHECK(env, NULL); /* localname is mandatory */ AXIS2_PARAM_CHECK(env->error, localname, NULL); attribute = (axiom_attribute_t *)AXIS2_MALLOC(env->allocator, sizeof(axiom_attribute_t)); if(!attribute) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } /** initialize fields */ attribute->localname = NULL; attribute->value = NULL; attribute->ns = NULL; attribute->qname = NULL; attribute->localname = axutil_string_clone(localname, env); if(!(attribute->localname)) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); AXIS2_FREE(env->allocator, attribute); return NULL; } if(value) { attribute->value = axutil_string_clone(value, env); if(!(attribute->value)) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); axutil_string_free(attribute->localname, env); AXIS2_FREE(env->allocator, attribute); return NULL; } } attribute->ns = ns; attribute->ref = 0; return attribute; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_namespace_set_uri_str( axiom_namespace_t * om_namespace, const axutil_env_t * env, axutil_string_t * uri) { AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, uri, AXIS2_FAILURE); if(om_namespace->uri) { axutil_string_free(om_namespace->uri, env); om_namespace->uri = NULL; } om_namespace->uri = axutil_string_clone(uri, env); if(!(om_namespace->uri)) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return AXIS2_FAILURE; } return AXIS2_SUCCESS; }
AXIS2_EXTERN axiom_namespace_t *AXIS2_CALL axiom_namespace_create_str( const axutil_env_t * env, axutil_string_t * uri, axutil_string_t * prefix) { axiom_namespace_t *om_namespace = NULL; if(!uri) { uri = axutil_string_create(env, ""); } om_namespace = (axiom_namespace_t *)AXIS2_MALLOC(env->allocator, sizeof(axiom_namespace_t)); if(!om_namespace) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } om_namespace->ref = 0; om_namespace->prefix = NULL; om_namespace->uri = NULL; om_namespace->key = NULL; om_namespace->uri = axutil_string_clone(uri, env); if(!om_namespace->uri) { AXIS2_FREE(env->allocator, om_namespace); AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } if(prefix) { om_namespace->prefix = axutil_string_clone(prefix, env); if(!om_namespace->prefix) { AXIS2_FREE(env->allocator, om_namespace); AXIS2_FREE(env->allocator, om_namespace->uri); AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return NULL; } } return om_namespace; }
AXIS2_EXTERN axis2_handler_desc_t *AXIS2_CALL axis2_handler_desc_create( const axutil_env_t * env, axutil_string_t * name) { axis2_handler_desc_t *handler_desc = NULL; handler_desc = AXIS2_MALLOC(env->allocator, sizeof(axis2_handler_desc_t)); if(!handler_desc) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory"); return NULL; } handler_desc->param_container = NULL; handler_desc->name = NULL; handler_desc->rules = NULL; handler_desc->handler = NULL; handler_desc->class_name = NULL; handler_desc->parent = NULL; handler_desc->param_container = axutil_param_container_create(env); if(!handler_desc->param_container) { /** error code is already set by last param container create */ axis2_handler_desc_free(handler_desc, env); return NULL; } handler_desc->rules = axis2_phase_rule_create(env, NULL); if(!handler_desc->rules) { /** error code is already set by last param container create */ axis2_handler_desc_free(handler_desc, env); return NULL; } if(name) { handler_desc->name = axutil_string_clone(name, env); } return handler_desc; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_text_set_value_str( struct axiom_text * om_text, const axutil_env_t * env, axutil_string_t * value) { if(om_text->value) { axutil_string_free(om_text->value, env); om_text->value = NULL; } if(value) { om_text->value = axutil_string_clone(value, env); } return AXIS2_SUCCESS; }
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) { if(options->soap_action) { axutil_string_free(options->soap_action, env); options->soap_action = NULL; } if(soap_action) { options->soap_action = axutil_string_clone(soap_action, env); } return AXIS2_SUCCESS; }
AXIS2_EXTERN axiom_text_t *AXIS2_CALL axiom_text_create_str( const axutil_env_t * env, axiom_node_t * parent, axutil_string_t * value, axiom_node_t ** node) { axiom_text_t *om_text = NULL; AXIS2_ENV_CHECK(env, NULL); AXIS2_PARAM_CHECK(env->error, node, 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, "Unable to create node needed by om text"); return NULL; } om_text = (axiom_text_t *)AXIS2_MALLOC(env->allocator, sizeof(axiom_text_t)); if(!om_text) { AXIS2_FREE(env->allocator, *node); AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Insufficient memory to create om text"); return NULL; } memset(om_text, 0, sizeof(axiom_text_t)); if(value) { om_text->value = axutil_string_clone(value, env); } axiom_node_set_data_element((*node), env, om_text); axiom_node_set_node_type((*node), env, AXIOM_TEXT); if(parent && axiom_node_get_node_type(parent, env) == AXIOM_ELEMENT) { axiom_node_add_child(parent, env, (*node)); } return om_text; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axis2_handler_desc_set_name( axis2_handler_desc_t * handler_desc, const axutil_env_t * env, axutil_string_t * name) { if(handler_desc->name) { axutil_string_free(handler_desc->name, env); handler_desc->name = NULL; } if(name) { handler_desc->name = axutil_string_clone(name, env); } return AXIS2_SUCCESS; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_attribute_set_localname_str( axiom_attribute_t * attribute, const axutil_env_t * env, axutil_string_t * localname) { AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, localname, AXIS2_FAILURE); if(attribute->localname) { axutil_string_free(attribute->localname, env); attribute->localname = NULL; } attribute->localname = axutil_string_clone(localname, env); return AXIS2_SUCCESS; }
AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_attribute_set_value_str( axiom_attribute_t * attribute, const axutil_env_t * env, axutil_string_t * value) { AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, value, AXIS2_FAILURE); if(attribute->value) { axutil_string_free(attribute->value, env); attribute->value = NULL; } attribute->value = axutil_string_clone(value, env); if(!(attribute->value)) { AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); return AXIS2_FAILURE; } return AXIS2_SUCCESS; }