axis2_msg.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_MSG_H
00019 #define AXIS2_MSG_H
00020 
00035 #include <axis2_param_container.h>
00036 #include <axis2_op.h>
00037 #include <axis2_array_list.h>
00038 #include <axis2_description.h>
00039 #include <axis2_phase_meta.h>
00040 
00041 #define AXIS2_MSG_IN            "InMessage"
00042 #define AXIS2_MSG_OUT           "OutMessage"
00043 #define AXIS2_MSG_IN_FAULT      "InFaultMessage"
00044 #define AXIS2_MSG_OUT_FAULT     "OutFaultMessage"
00045 
00046 
00047 #ifdef __cplusplus
00048 extern "C"
00049 {
00050 #endif
00051 
00053     typedef struct axis2_msg_ops axis2_msg_ops_t;
00055     typedef struct axis2_msg axis2_msg_t;
00056 
00061     struct axis2_msg_ops
00062     {
00069         axis2_status_t (AXIS2_CALL *
00070                 free)(
00071                     axis2_msg_t *msg,
00072                     const axis2_env_t *env);
00073 
00082         axis2_status_t (AXIS2_CALL *
00083                 add_param)(
00084                     axis2_msg_t *msg,
00085                     const axis2_env_t *env,
00086                     axis2_param_t *param);
00087 
00096         axis2_param_t *(AXIS2_CALL *
00097                 get_param)(
00098                     const axis2_msg_t *msg,
00099                     const axis2_env_t *env,
00100                     const axis2_char_t *name);
00101 
00109         axis2_array_list_t *(AXIS2_CALL *
00110                 get_all_params)(
00111                     const axis2_msg_t *msg,
00112                     const axis2_env_t *env);
00113 
00121         axis2_bool_t (AXIS2_CALL *
00122                 is_param_locked)(
00123                     axis2_msg_t *msg,
00124                     const axis2_env_t *env,
00125                     const axis2_char_t *param_name);
00126 
00135         axis2_status_t (AXIS2_CALL *
00136                 set_parent)(
00137                     axis2_msg_t *msg,
00138                     const axis2_env_t *env,
00139                     axis2_op_t *op);
00140 
00148         axis2_op_t *(AXIS2_CALL *
00149                 get_parent)(
00150                     const axis2_msg_t *msg,
00151                     const axis2_env_t *env);
00152 
00160         axis2_array_list_t *(AXIS2_CALL *
00161                 get_flow)(
00162                     const axis2_msg_t *msg,
00163                     const axis2_env_t *env);
00164 
00173         axis2_status_t (AXIS2_CALL *
00174                 set_flow)(
00175                     axis2_msg_t *msg,
00176                     const axis2_env_t *env,
00177                     axis2_array_list_t *flow);
00178 
00185         const axis2_char_t *(AXIS2_CALL *
00186                 get_direction)(
00187                     const axis2_msg_t *msg,
00188                     const axis2_env_t *env);
00189 
00197         axis2_status_t (AXIS2_CALL *
00198                 set_direction)(
00199                     axis2_msg_t *msg,
00200                     const axis2_env_t *env,
00201                     const axis2_char_t *direction);
00202 
00209         const axis2_qname_t *(AXIS2_CALL *
00210                 get_element_qname)(
00211                     const axis2_msg_t *msg,
00212                     const axis2_env_t *env);
00213 
00222         axis2_status_t (AXIS2_CALL *
00223                 set_element_qname)(
00224                     axis2_msg_t *msg,
00225                     const axis2_env_t *env,
00226                     const axis2_qname_t *element_qname);
00227 
00234         const axis2_char_t *(AXIS2_CALL *
00235                 get_name)(
00236                     const axis2_msg_t *msg,
00237                     const axis2_env_t *env);
00238 
00246         axis2_status_t (AXIS2_CALL *
00247                 set_name)(
00248                     axis2_msg_t *msg,
00249                     const axis2_env_t *env,
00250                     const axis2_char_t *name);
00251 
00259         xml_schema_element_t *(AXIS2_CALL *
00260                 get_schema_element)(
00261                     const axis2_msg_t *msg,
00262                     const axis2_env_t *env);
00263     };
00264 
00268     struct axis2_msg
00269     {
00271         axis2_msg_ops_t *ops;
00273         struct axis2_param_container *param_container;
00274     };
00275 
00281     AXIS2_EXTERN axis2_msg_t *AXIS2_CALL
00282     axis2_msg_create(
00283         const axis2_env_t *env);
00284 
00285 
00288 #define AXIS2_MSG_FREE(msg, env) \
00289         ((msg)->ops->free (msg, env))
00290 
00293 #define AXIS2_MSG_ADD_PARAM(msg, env, param) \
00294       ((msg)->ops->add_param (msg, env, param))
00295 
00298 #define AXIS2_MSG_GET_PARAM(msg, env, key) \
00299       ((msg)->ops->get_param (msg, env, key))
00300 
00303 #define AXIS2_MSG_GET_ALL_PARAMS(msg, env) \
00304       ((msg)->ops->get_all_params (msg, env))
00305 
00308 #define AXIS2_MSG_IS_PARAM_LOCKED(msg, env, param_name) \
00309         ((msg)->ops->is_param_locked(msg, env, param_name))
00310 
00313 #define AXIS2_MSG_SET_PARENT(msg, env, service_desc) \
00314         ((msg)->ops->set_parent (msg, env, service_desc))
00315 
00318 #define AXIS2_MSG_GET_PARENT(msg, env) \
00319       ((msg)->ops->get_parent (msg, env))
00320 
00323 #define AXIS2_MSG_GET_FLOW(msg, env) \
00324       ((msg)->ops->get_flow (msg, env))
00325 
00328 #define AXIS2_MSG_SET_FLOW(msg, env, flow) \
00329       ((msg)->ops->set_flow (msg, env, flow))
00330 
00333 #define AXIS2_MSG_GET_DIRECTION(msg, env) \
00334       ((msg)->ops->get_direction (msg, env))
00335 
00338 #define AXIS2_MSG_SET_DIRECTION(msg, env, direction) \
00339       ((msg)->ops->set_direction (msg, env, direction))
00340 
00343 #define AXIS2_MSG_GET_ELEMENT_QNAME(msg, env) \
00344       ((msg)->ops->get_element_qname(msg, env))
00345 
00348 #define AXIS2_MSG_SET_ELEMENT_QNAME(msg, env, element_qname) \
00349       ((msg)->ops->set_element_qname(msg, env, element_qname))
00350 
00353 #define AXIS2_MSG_GET_NAME(msg, env) \
00354       ((msg)->ops->get_name(msg, env))
00355 
00358 #define AXIS2_MSG_SET_NAME(msg, env, name) \
00359       ((msg)->ops->set_name(msg, env, name))
00360 
00363 #define AXIS2_MSG_GET_SCHEMA_ELEMENT(msg, env) \
00364       ((msg)->ops->get_schema_element(msg, env))
00365 
00367 #ifdef __cplusplus
00368 }
00369 #endif
00370 #endif  /* AXIS2_MSG_H */

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1