axis2_dll_desc.h

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

Generated on Thu Oct 26 21:11:23 2006 for Axis2/C by  doxygen 1.4.7