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 
00034 #include <axis2_param_container.h>
00035 #include <axis2_op.h>
00036 #include <axis2_array_list.h>
00037 #include <axis2_description.h>
00038 #include <axis2_phase_meta.h>
00039 
00040 #define AXIS2_MSG_IN            "InMessage"
00041 #define AXIS2_MSG_OUT           "OutMessage"
00042 #define AXIS2_MSG_IN_FAULT      "InFaultMessage"
00043 #define AXIS2_MSG_OUT_FAULT     "OutFaultMessage"
00044 
00045 
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050 
00052     typedef struct axis2_msg_ops axis2_msg_ops_t;
00054     typedef struct axis2_msg axis2_msg_t;
00055 
00060     struct axis2_msg_ops
00061     {
00068         axis2_status_t (AXIS2_CALL *
00069                 free)(
00070                     axis2_msg_t *msg,
00071                     const axis2_env_t *env);
00072 
00081         axis2_status_t (AXIS2_CALL *
00082                 add_param)(
00083                     axis2_msg_t *msg,
00084                     const axis2_env_t *env,
00085                     axis2_param_t *param);
00086 
00095         axis2_param_t *(AXIS2_CALL *
00096                 get_param)(
00097                     const axis2_msg_t *msg,
00098                     const axis2_env_t *env,
00099                     const axis2_char_t *name);
00100 
00108         axis2_array_list_t *(AXIS2_CALL *
00109                 get_all_params)(
00110                     const axis2_msg_t *msg,
00111                     const axis2_env_t *env);
00112 
00120         axis2_bool_t (AXIS2_CALL *
00121                 is_param_locked)(
00122                     axis2_msg_t *msg,
00123                     const axis2_env_t *env,
00124                     const axis2_char_t *param_name);
00125 
00134         axis2_status_t (AXIS2_CALL *
00135                 set_parent)(
00136                     axis2_msg_t *msg,
00137                     const axis2_env_t *env,
00138                     axis2_op_t *op);
00139 
00147         axis2_op_t *(AXIS2_CALL *
00148                 get_parent)(
00149                     const axis2_msg_t *msg,
00150                     const axis2_env_t *env);
00151 
00159         axis2_array_list_t *(AXIS2_CALL *
00160                 get_flow)(
00161                     const axis2_msg_t *msg,
00162                     const axis2_env_t *env);
00163 
00172         axis2_status_t (AXIS2_CALL *
00173                 set_flow)(
00174                     axis2_msg_t *msg,
00175                     const axis2_env_t *env,
00176                     axis2_array_list_t *flow);
00177 
00184         const axis2_char_t *(AXIS2_CALL *
00185                 get_direction)(
00186                     const axis2_msg_t *msg,
00187                     const axis2_env_t *env);
00188 
00196         axis2_status_t (AXIS2_CALL *
00197                 set_direction)(
00198                     axis2_msg_t *msg,
00199                     const axis2_env_t *env,
00200                     const axis2_char_t *direction);
00201 
00208         const axis2_qname_t *(AXIS2_CALL *
00209                 get_element_qname)(
00210                     const axis2_msg_t *msg,
00211                     const axis2_env_t *env);
00212 
00221         axis2_status_t (AXIS2_CALL *
00222                 set_element_qname)(
00223                     axis2_msg_t *msg,
00224                     const axis2_env_t *env,
00225                     const axis2_qname_t *element_qname);
00226 
00233         const axis2_char_t *(AXIS2_CALL *
00234                 get_name)(
00235                     const axis2_msg_t *msg,
00236                     const axis2_env_t *env);
00237 
00245         axis2_status_t (AXIS2_CALL *
00246                 set_name)(
00247                     axis2_msg_t *msg,
00248                     const axis2_env_t *env,
00249                     const axis2_char_t *name);
00250 
00258         xml_schema_element_t *(AXIS2_CALL *
00259                 get_schema_element)(
00260                     const axis2_msg_t *msg,
00261                     const axis2_env_t *env);
00262     };
00263 
00267     struct axis2_msg
00268     {
00270         axis2_msg_ops_t *ops;
00272         struct axis2_param_container *param_container;
00273     };
00274 
00280     AXIS2_EXTERN axis2_msg_t *AXIS2_CALL
00281     axis2_msg_create(
00282         const axis2_env_t *env);
00283 
00284 
00287 #define AXIS2_MSG_FREE(msg, env) \
00288         ((msg)->ops->free (msg, env))
00289 
00292 #define AXIS2_MSG_ADD_PARAM(msg, env, param) \
00293       ((msg)->ops->add_param (msg, env, param))
00294 
00297 #define AXIS2_MSG_GET_PARAM(msg, env, key) \
00298       ((msg)->ops->get_param (msg, env, key))
00299 
00302 #define AXIS2_MSG_GET_ALL_PARAMS(msg, env) \
00303       ((msg)->ops->get_all_params (msg, env))
00304 
00307 #define AXIS2_MSG_IS_PARAM_LOCKED(msg, env, param_name) \
00308         ((msg)->ops->is_param_locked(msg, env, param_name))
00309 
00312 #define AXIS2_MSG_SET_PARENT(msg, env, service_desc) \
00313         ((msg)->ops->set_parent (msg, env, service_desc))
00314 
00317 #define AXIS2_MSG_GET_PARENT(msg, env) \
00318       ((msg)->ops->get_parent (msg, env))
00319 
00322 #define AXIS2_MSG_GET_FLOW(msg, env) \
00323       ((msg)->ops->get_flow (msg, env))
00324 
00327 #define AXIS2_MSG_SET_FLOW(msg, env, flow) \
00328       ((msg)->ops->set_flow (msg, env, flow))
00329 
00332 #define AXIS2_MSG_GET_DIRECTION(msg, env) \
00333       ((msg)->ops->get_direction (msg, env))
00334 
00337 #define AXIS2_MSG_SET_DIRECTION(msg, env, direction) \
00338       ((msg)->ops->set_direction (msg, env, direction))
00339 
00342 #define AXIS2_MSG_GET_ELEMENT_QNAME(msg, env) \
00343       ((msg)->ops->get_element_qname(msg, env))
00344 
00347 #define AXIS2_MSG_SET_ELEMENT_QNAME(msg, env, element_qname) \
00348       ((msg)->ops->set_element_qname(msg, env, element_qname))
00349 
00352 #define AXIS2_MSG_GET_NAME(msg, env) \
00353       ((msg)->ops->get_name(msg, env))
00354 
00357 #define AXIS2_MSG_SET_NAME(msg, env, name) \
00358       ((msg)->ops->set_name(msg, env, name))
00359 
00362 #define AXIS2_MSG_GET_SCHEMA_ELEMENT(msg, env) \
00363       ((msg)->ops->get_schema_element(msg, env))
00364 
00366 #ifdef __cplusplus
00367 }
00368 #endif
00369 #endif  /* AXIS2_MSG_H */

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