Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

axis2_msg.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_MSG_H
00018 #define AXIS2_MSG_H
00019 
00025 #include <axis2_param_container.h>
00026 #include <axis2_op.h>
00027 #include <axis2_array_list.h>
00028 #include <axis2_description.h>
00029 #include <axis2_phase_meta.h>
00030 
00031 #define AXIS2_MSG_IN            "InMessage"
00032 #define AXIS2_MSG_OUT           "OutMessage"
00033 #define AXIS2_MSG_IN_FAULT      "InFaultMessage"
00034 #define AXIS2_MSG_OUT_FAULT     "OutFaultMessage"
00035 
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00047 typedef struct axis2_msg_ops axis2_msg_ops_t;    
00048 typedef struct axis2_msg axis2_msg_t;    
00049     
00054 AXIS2_DECLARE_DATA struct axis2_msg_ops
00055 {
00056     axis2_status_t (AXIS2_CALL *
00057     free)(
00058         axis2_msg_t *msg, 
00059         const axis2_env_t *env);   
00060     
00061     axis2_status_t (AXIS2_CALL *
00062     add_param)(
00063         axis2_msg_t *msg, 
00064         const axis2_env_t *env,
00065         axis2_param_t *param);
00066     
00067     axis2_param_t *(AXIS2_CALL *
00068     get_param)(
00069         axis2_msg_t *msg, 
00070         const axis2_env_t *env,
00071         axis2_char_t *name);
00072     
00073     axis2_array_list_t *(AXIS2_CALL *
00074     get_params)(
00075         axis2_msg_t *msg, 
00076         const axis2_env_t *env);
00077     
00078     axis2_bool_t (AXIS2_CALL *
00079     is_param_locked)(
00080         axis2_msg_t *msg, 
00081         const axis2_env_t *env,
00082         axis2_char_t *param_name);
00083     
00084     axis2_status_t (AXIS2_CALL *
00085     set_parent)(
00086         axis2_msg_t *msg, 
00087         const axis2_env_t *env,
00088         axis2_op_t *op);
00089     
00090     axis2_op_t *(AXIS2_CALL *
00091     get_parent)(
00092         axis2_msg_t *msg, 
00093         const axis2_env_t *env);
00094     
00095     axis2_array_list_t *(AXIS2_CALL *
00096     get_flow)(
00097         axis2_msg_t *msg,
00098         const axis2_env_t *env);
00099         
00100     axis2_status_t (AXIS2_CALL *
00101     set_flow)(
00102         axis2_msg_t *msg, 
00103         const axis2_env_t *env,
00104         axis2_array_list_t *flow);
00105     
00106     axis2_char_t *(AXIS2_CALL *
00107     get_direction)(
00108         axis2_msg_t *msg, 
00109         const axis2_env_t *env);
00110     
00111     axis2_status_t (AXIS2_CALL *
00112     set_direction)(
00113         axis2_msg_t *msg, 
00114         const axis2_env_t *env,
00115         const axis2_char_t *direction);
00116     
00117     axis2_qname_t *(AXIS2_CALL *
00118     get_element_qname)(
00119         axis2_msg_t *msg, 
00120         const axis2_env_t *env);
00121     
00122     axis2_status_t (AXIS2_CALL *
00123     set_element_qname)(
00124         axis2_msg_t *msg, 
00125         const axis2_env_t *env,
00126         axis2_qname_t *element_qname);
00127     
00128     axis2_char_t *(AXIS2_CALL *
00129     get_name)(
00130         axis2_msg_t *msg, 
00131         const axis2_env_t *env);
00132         
00133     axis2_status_t (AXIS2_CALL *
00134     set_name)(
00135         axis2_msg_t *msg, 
00136         const axis2_env_t *env,
00137         const axis2_char_t *name);
00138 };
00139 
00144 AXIS2_DECLARE_DATA struct axis2_msg
00145 {
00146    axis2_msg_ops_t *ops;
00147     struct axis2_param_container *param_container;
00148 };
00149 
00154 AXIS2_EXTERN axis2_msg_t * AXIS2_CALL
00155 axis2_msg_create (const axis2_env_t *env);
00156 
00157 /************************** Start of function macros **************************/
00158 
00159 #define AXIS2_MSG_FREE(msg, env) \
00160         ((msg)->ops->free (msg, env))
00161 
00162 #define AXIS2_MSG_ADD_PARAM(msg, env, param) \
00163       ((msg)->ops->add_param (msg, env, param))
00164 
00165 #define AXIS2_MSG_GET_PARAM(msg, env, key) \
00166       ((msg)->ops->get_param (msg, env, key))
00167 
00168 #define AXIS2_MSG_GET_PARAMS(msg, env) \
00169       ((msg)->ops->get_params (msg, env))
00170 
00171 #define AXIS2_MSG_IS_PARAM_LOCKED(msg, env, param_name) \
00172         ((msg)->ops->is_param_locked(msg, env, param_name))
00173 
00174 #define AXIS2_MSG_SET_PARENT(msg, env, service_desc) \
00175         ((msg)->ops->set_parent (msg, env, service_desc))
00176 
00177 #define AXIS2_MSG_GET_PARENT(msg, env) \
00178       ((msg)->ops->get_parent (msg, env))
00179 
00180 #define AXIS2_MSG_GET_FLOW(msg, env) \
00181       ((msg)->ops->get_flow (msg, env))
00182 
00183 #define AXIS2_MSG_SET_FLOW(msg, env, flow) \
00184       ((msg)->ops->set_flow (msg, env, flow))
00185 
00186 #define AXIS2_MSG_GET_DIRECTION(msg, env) \
00187       ((msg)->ops->get_direction (msg, env))
00188     
00189 #define AXIS2_MSG_SET_DIRECTION(msg, env, direction) \
00190       ((msg)->ops->set_direction (msg, env, direction))
00191 
00192 #define AXIS2_MSG_GET_ELEMENT_QNAME(msg, env) \
00193       ((msg)->ops->get_element_qname(msg, env))
00194     
00195 #define AXIS2_MSG_SET_ELEMENT_QNAME(msg, env, element_qname) \
00196       ((msg)->ops->set_element_qname(msg, env, element_qname))
00197 
00198 #define AXIS2_MSG_GET_NAME(msg, env) \
00199       ((msg)->ops->get_name(msg, env))
00200     
00201 #define AXIS2_MSG_SET_NAME(msg, env, name) \
00202       ((msg)->ops->set_name(msg, env, name))
00203 
00204 /************************** End of function macros ****************************/
00205 
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210 #endif  /* AXIS2_MSG_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2