From 0425aadc78680e53000fd0108b540d6eca048516 Mon Sep 17 00:00:00 2001 From: gmcdonald Date: Sat, 13 Feb 2010 01:32:03 +0000 Subject: Moving axis svn, part of TLP move INFRA-2441 git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@909681 13f79535-47bb-0310-9956-ffa450edef68 --- util/include/axutil_dll_desc.h | 191 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 util/include/axutil_dll_desc.h (limited to 'util/include/axutil_dll_desc.h') diff --git a/util/include/axutil_dll_desc.h b/util/include/axutil_dll_desc.h new file mode 100644 index 0000000..30f69f1 --- /dev/null +++ b/util/include/axutil_dll_desc.h @@ -0,0 +1,191 @@ + +/* + * 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_DLL_DESC_H +#define AXUTIL_DLL_DESC_H + +/** + * @file axutil_dll_desc.h + * @brief Axis2 dll_desc interface + */ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + + /** + * @defgroup axutil_dll_desc DLL description + * @ingroup axis2_util + * @{ + */ + + typedef struct axutil_dll_desc axutil_dll_desc_t; + + typedef int( + *CREATE_FUNCT)( + void **inst, + const axutil_env_t * env); + + typedef int( + *DELETE_FUNCT)( + void *inst, + const axutil_env_t * env); + + typedef int axis2_dll_type_t; + + /** + * creates dll_desc struct + * @param qname qname, can be NULL + */ + AXIS2_EXTERN axutil_dll_desc_t *AXIS2_CALL + axutil_dll_desc_create( + const axutil_env_t * env); + + AXIS2_EXTERN void AXIS2_CALL + axutil_dll_desc_free_void_arg( + void *dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN void AXIS2_CALL + axutil_dll_desc_free( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + /** + * Set path qualified platform specific dll name + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_name( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + axis2_char_t * name); + + /** + * Return the path qualified platform specific dll name + */ + AXIS2_EXTERN axis2_char_t *AXIS2_CALL + axutil_dll_desc_get_name( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_type( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + axis2_dll_type_t type); + + AXIS2_EXTERN axis2_dll_type_t AXIS2_CALL + axutil_dll_desc_get_type( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_load_options( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + int options); + + AXIS2_EXTERN int AXIS2_CALL + axutil_dll_desc_get_load_options( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_dl_handler( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + AXIS2_DLHANDLER dl_handler); + + AXIS2_EXTERN AXIS2_DLHANDLER AXIS2_CALL + axutil_dll_desc_get_dl_handler( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_create_funct( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + CREATE_FUNCT funct); + + AXIS2_EXTERN CREATE_FUNCT AXIS2_CALL + axutil_dll_desc_get_create_funct( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_delete_funct( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + DELETE_FUNCT funct); + + AXIS2_EXTERN DELETE_FUNCT AXIS2_CALL + axutil_dll_desc_get_delete_funct( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_timestamp( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + AXIS2_TIME_T timestamp); + + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axutil_dll_desc_set_error_code( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + axutil_error_codes_t error_code); + + AXIS2_EXTERN axutil_error_codes_t AXIS2_CALL + + axutil_dll_desc_get_error_code( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + AXIS2_EXTERN AXIS2_TIME_T AXIS2_CALL + axutil_dll_desc_get_timestamp( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env); + + /** + * 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 + * + * @param class_name + * @return platform specific dll name + */ + AXIS2_EXTERN axis2_char_t *AXIS2_CALL + + axutil_dll_desc_create_platform_specific_dll_name( + axutil_dll_desc_t * dll_desc, + const axutil_env_t * env, + const axis2_char_t * class_name); + +#ifdef __cplusplus +} +#endif + +#endif /* AXIS2_DLL_DESC_H */ -- cgit v1.1-32-gdbae