axis2_dll_desc.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef AXIS2_DLL_DESC_H
00019 #define AXIS2_DLL_DESC_H
00020 
00026 #include <axis2_utils_defines.h>
00027 #include <axis2_qname.h>
00028 #include <axis2_error.h>
00029 #include <axis2_utils.h>
00030 #include <platforms/axis2_platform_auto_sense.h>
00031 
00032 #ifdef __cplusplus
00033 extern "C"
00034 {
00035 #endif
00036     
00044 typedef struct axis2_dll_desc axis2_dll_desc_t;
00045 typedef struct axis2_dll_desc_ops axis2_dll_desc_ops_t;
00046    
00047     
00048 typedef int (*CREATE_FUNCT) (void **inst, const axis2_env_t *env);
00049 
00050 typedef int (*DELETE_FUNCT) (void *inst, const axis2_env_t *env);
00051 
00052 typedef enum axis2_dll_type
00053 {
00055     AXIS2_SVC_DLL = 0,
00057     AXIS2_HANDLER_DLL,
00059     AXIS2_MSG_RECV_DLL,
00061     AXIS2_MODULE_DLL,
00063     AXIS2_TRANSPORT_RECV_DLL,
00065     AXIS2_TRANSPORT_SENDER_DLL
00066        
00067 }axis2_dll_type_t;
00068 
00072  struct axis2_dll_desc_ops
00073 { 
00074     axis2_status_t (AXIS2_CALL *
00075     free) (axis2_dll_desc_t *dll_desc, 
00076             const axis2_env_t *env);
00077     
00081     axis2_status_t (AXIS2_CALL *
00082     set_name) (axis2_dll_desc_t *dll_desc,
00083                             const axis2_env_t *env,
00084                             axis2_char_t *name);
00085     
00089     axis2_char_t *(AXIS2_CALL *
00090     get_name) (axis2_dll_desc_t *dll_desc,
00091                             const axis2_env_t *env);
00092     
00093     axis2_status_t (AXIS2_CALL *
00094     set_type) (axis2_dll_desc_t *dll_desc,
00095                             const axis2_env_t *env,
00096                             axis2_dll_type_t type);
00097     
00098     axis2_dll_type_t (AXIS2_CALL *
00099     get_type) (axis2_dll_desc_t *dll_desc,
00100                             const axis2_env_t *env);
00101     
00102     axis2_status_t (AXIS2_CALL *
00103     set_load_options) (axis2_dll_desc_t *dll_desc,
00104                             const axis2_env_t *env,
00105                             int options);
00106     
00107     int (AXIS2_CALL *
00108     get_load_options) (axis2_dll_desc_t *dll_desc,
00109                             const axis2_env_t *env);
00110     
00111     axis2_status_t (AXIS2_CALL *
00112     set_dl_handler) (axis2_dll_desc_t *dll_desc,
00113                             const axis2_env_t *env,
00114                             AXIS2_DLHANDLER dl_handler);
00115     
00116     AXIS2_DLHANDLER (AXIS2_CALL *
00117     get_dl_handler) (axis2_dll_desc_t *dll_desc,
00118                             const axis2_env_t *env);
00119     
00120     axis2_status_t (AXIS2_CALL *
00121     set_create_funct) (axis2_dll_desc_t *dll_desc,
00122                             const axis2_env_t *env,
00123                             CREATE_FUNCT funct);
00124     
00125     CREATE_FUNCT (AXIS2_CALL *
00126     get_create_funct) (axis2_dll_desc_t *dll_desc,
00127                             const axis2_env_t *env);
00128     
00129     axis2_status_t (AXIS2_CALL *
00130     set_delete_funct) (axis2_dll_desc_t *dll_desc,
00131                             const axis2_env_t *env,
00132                             DELETE_FUNCT funct);
00133     
00134     DELETE_FUNCT (AXIS2_CALL *
00135     get_delete_funct) (axis2_dll_desc_t *dll_desc,
00136                             const axis2_env_t *env);
00137                             
00138     axis2_status_t (AXIS2_CALL *
00139     set_timestamp) (axis2_dll_desc_t *dll_desc,
00140                             const axis2_env_t *env,
00141                             AXIS2_TIME_T timestamp);
00142 
00143     axis2_status_t (AXIS2_CALL *
00144     set_error_code) (
00145             axis2_dll_desc_t *dll_desc,
00146             const axis2_env_t *env,
00147             axis2_error_codes_t error_code);
00148 
00149     axis2_error_codes_t (AXIS2_CALL *
00150     get_error_code) (
00151             axis2_dll_desc_t *dll_desc,
00152             const axis2_env_t *env);
00153             
00154     AXIS2_TIME_T (AXIS2_CALL *
00155     get_timestamp) (axis2_dll_desc_t *dll_desc,
00156                             const axis2_env_t *env);                            
00166     axis2_char_t *(AXIS2_CALL *
00167     create_platform_specific_dll_name)(axis2_dll_desc_t *dll_desc,
00168                                         const axis2_env_t *env,
00169                                         const axis2_char_t *class_name);
00170 
00171         
00172 };
00173    
00177  struct axis2_dll_desc
00178 {
00180     axis2_dll_desc_ops_t *ops;
00181     
00182 };
00183 
00184 
00189 AXIS2_EXTERN axis2_dll_desc_t* AXIS2_CALL 
00190 axis2_dll_desc_create(const axis2_env_t *env);
00191 
00192 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00193 axis2_dll_desc_free_void_arg (void *dll_desc,
00194                                     const axis2_env_t *env);
00195 
00196 /******************************************************************************/
00197 
00198 #define AXIS2_DLL_DESC_FREE(dll_desc, env) \
00199     ((dll_desc)->ops->free(dll_desc, env))
00200 
00201 #define AXIS2_DLL_DESC_GET_NAME(dll_desc, env) \
00202     ((dll_desc)->ops->get_name(dll_desc, env))
00203     
00204 #define AXIS2_DLL_DESC_SET_NAME(dll_desc, env, name) \
00205     ((dll_desc)->ops->set_name(dll_desc, env, name))
00206 
00207 #define AXIS2_DLL_DESC_GET_TYPE(dll_desc, env) \
00208     ((dll_desc)->ops->get_type(dll_desc, env))
00209     
00210 #define AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, type) \
00211     ((dll_desc)->ops->set_type(dll_desc, env, type))
00212 
00213 #define AXIS2_DLL_DESC_GET_LOAD_OPTIONS(dll_desc, env) \
00214     ((dll_desc)->ops->get_load_options(dll_desc, env))
00215     
00216 #define AXIS2_DLL_DESC_SET_LOAD_OPTIONS(dll_desc, env, load_options) \
00217     ((dll_desc)->ops->set_load_options(dll_desc, env, load_options))
00218     
00219 #define AXIS2_DLL_DESC_GET_DL_HANDLER(dll_desc, env) \
00220     ((dll_desc)->ops->get_dl_handler(dll_desc, env))
00221     
00222 #define AXIS2_DLL_DESC_SET_DL_HANDLER(dll_desc, env, dl_handler) \
00223     ((dll_desc)->ops->set_dl_handler(dll_desc, env, dl_handler))
00224     
00225 #define AXIS2_DLL_DESC_GET_CREATE_FUNCT(dll_desc, env) \
00226     ((dll_desc)->ops->get_create_funct(dll_desc, env))
00227     
00228 #define AXIS2_DLL_DESC_SET_CREATE_FUNCT(dll_desc, env, funct) \
00229     ((dll_desc)->ops->set_create_funct(dll_desc, env, funct))
00230     
00231 #define AXIS2_DLL_DESC_GET_DELETE_FUNCT(dll_desc, env) \
00232     ((dll_desc)->ops->get_delete_funct((dll_desc, env))
00233     
00234 #define AXIS2_DLL_DESC_SET_DELETE_FUNCT(dll_desc, env, funct) \
00235     ((dll_desc)->ops->set_delete_funct(dll_desc, env, funct))
00236 
00237 #define AXIS2_DLL_DESC_GET_TIMESTAMP(dll_desc, env) \
00238     ((dll_desc)->ops->get_timestamp(dll_desc, env))
00239     
00240 #define AXIS2_DLL_DESC_SET_TIMESTAMP(dll_desc, env, timestamp) \
00241     ((dll_desc)->ops->set_timestamp(dll_desc, env, timestamp))
00242     
00243 #define AXIS2_DLL_DESC_SET_ERROR_CODE(dll_desc, env, error_code) \
00244     ((dll_desc)->ops->set_error_code(dll_desc, env, error_code))
00245 
00246 #define AXIS2_DLL_DESC_GET_ERROR_CODE(dll_desc, env) \
00247     ((dll_desc)->ops->get_error_code(dll_desc, env))
00248 
00249 #define AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, class_name) \
00250     ((dll_desc)->ops->create_platform_specific_dll_name(dll_desc, env, class_name))
00251 
00254 #ifdef __cplusplus
00255 }
00256 #endif
00257 
00258 #endif    /* AXIS2_DLL_DESC_H */

Generated on Wed Dec 20 20:34:49 2006 for Axis2/C by  doxygen 1.5.1