in src/core/clientapi/callback.c [73:109]
static axis2_status_t AXIS2_CALL axis2_callback_on_complete(
axis2_callback_t * callback,
const axutil_env_t * env);
static axis2_status_t AXIS2_CALL axis2_callback_on_error(
axis2_callback_t * callback,
const axutil_env_t * env,
int exception);
AXIS2_EXTERN axis2_callback_t *AXIS2_CALL
axis2_callback_create(
const axutil_env_t * env)
{
axis2_callback_t *callback = NULL;
AXIS2_ENV_CHECK(env, NULL);
callback = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_t));
if(!callback)
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "No memory. Cannot create callback.");
return NULL;
}
callback->complete = AXIS2_FALSE;
callback->envelope = NULL;
callback->msg_ctx = NULL;
callback->error = AXIS2_ERROR_NONE;
callback->data = NULL;
callback->mutex = NULL;
callback->on_complete = axis2_callback_on_complete;
callback->on_error = axis2_callback_on_error;
callback->mutex = axutil_thread_mutex_create(env->allocator, AXIS2_THREAD_MUTEX_DEFAULT);
return callback;
}