| /* |
| * Copyright 2004,2005 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #ifndef AXIS2_TRANSPORT_RECEIVER_H |
| #define AXIS2_TRANSPORT_RECEIVER_H |
| |
| /** |
| * @defgroup axis2_transport transport |
| * @ingroup axis2 |
| * @{ |
| * @} |
| */ |
| |
| /** @defgroup axis2_transport_receiver transport receiver |
| * @ingroup axis2_transport |
| * Description. |
| * @{ |
| */ |
| |
| /** |
| * @file axis2_transport_receiver.h |
| * @brief Axis2 description transport receiver interface |
| */ |
| |
| #include <axis2_const.h> |
| #include <axis2_error.h> |
| #include <axis2_defines.h> |
| #include <axis2_env.h> |
| #include <axis2_allocator.h> |
| #include <axis2_endpoint_ref.h> |
| #include <axis2_ctx.h> |
| #include <axis2_conf_ctx.h> |
| |
| |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| struct axis2_conf_ctx; |
| struct axis2_transport_in_desc; |
| /** Type name for axis2_transport_receiver */ |
| typedef struct axis2_transport_receiver axis2_transport_receiver_t; |
| /** Type name for axis2_transport_receiver_ops */ |
| typedef struct axis2_transport_receiver_ops axis2_transport_receiver_ops_t; |
| |
| /** |
| * @brief Description Transport Receiver ops struct |
| * Encapsulator struct for ops of axis2_transport_receiver |
| */ |
| struct axis2_transport_receiver_ops |
| { |
| /** |
| * De-allocate memory |
| * @param transport_receiver pointer to transport receiver |
| * @param env pointer to environment struct |
| */ |
| axis2_status_t (AXIS2_CALL * |
| free)( |
| axis2_transport_receiver_t *transport_receiver, |
| const axis2_env_t *env); |
| |
| /** |
| * @param transport_receiver |
| * @param env pointer to environmnet struct |
| */ |
| axis2_status_t (AXIS2_CALL * |
| start)( |
| axis2_transport_receiver_t *transport_receiver, |
| const axis2_env_t *env); |
| |
| /** |
| * @param transport_receiver pointer to transport receiver |
| * @param env pointer to environment struct |
| */ |
| axis2_status_t (AXIS2_CALL * |
| stop)( |
| axis2_transport_receiver_t *transport_receiver, |
| const axis2_env_t *env); |
| |
| /** |
| * @param tranport_receiver pointer to transport receiver |
| * @param env pointer to environmnet struct |
| * @param svc_name pointer to service name |
| */ |
| axis2_endpoint_ref_t* (AXIS2_CALL * |
| get_reply_to_epr)( |
| axis2_transport_receiver_t *transport_receiver, |
| const axis2_env_t *env, |
| const axis2_char_t *svc_name); |
| |
| /** |
| * @param transport_receiver pointer to transport receiver |
| * @param env pointer to environment struct |
| * @param conf_ctx pointer to configuratoin context |
| * @param intrasport_in pointer to transport_in |
| */ |
| axis2_status_t (AXIS2_CALL * |
| init) ( |
| axis2_transport_receiver_t *transport_receiver, |
| const axis2_env_t *env, |
| struct axis2_conf_ctx *conf_ctx, |
| struct axis2_transport_in_desc *transport_in); |
| |
| |
| /** |
| * @param server pointer to server |
| * @param env pointer to environment struct |
| */ |
| struct axis2_conf_ctx* (AXIS2_CALL * |
| get_conf_ctx)( |
| axis2_transport_receiver_t *server, |
| const axis2_env_t *env); |
| |
| |
| /** |
| * @param server pointer to server |
| * @param env pointer to environment struct |
| */ |
| axis2_bool_t (AXIS2_CALL * |
| is_running)( |
| axis2_transport_receiver_t *server, |
| const axis2_env_t *env); |
| |
| }; |
| |
| /** |
| * @brief Transport Reciever struct |
| */ |
| struct axis2_transport_receiver |
| { |
| axis2_transport_receiver_ops_t *ops; |
| }; |
| |
| |
| /*************************** Function macros **********************************/ |
| |
| /** Frees the transport receiver. |
| @sa axis2_transport_receiver#free */ |
| #define AXIS2_TRANSPORT_RECEIVER_FREE(transport_receiver, env) \ |
| ((transport_receiver->ops)->free (transport_receiver, env)) |
| |
| /** Initialize the transport receiver. |
| @sa axis2_transport_receiver#init */ |
| #define AXIS2_TRANSPORT_RECEIVER_INIT(transport_receiver, env, axisconf, transport_in) \ |
| ((transport_receiver->ops)->init (transport_receiver, env, axisconf, transport_in)) |
| |
| /** Start |
| @sa axis2_transport_receiver#start */ |
| #define AXIS2_TRANSPORT_RECEIVER_START(transport_receiver, env) \ |
| ((transport_receiver->ops)->start (transport_receiver, env)) |
| |
| /** Stop. |
| @sa axis2_transport_receiver#stop */ |
| #define AXIS2_TRANSPORT_RECEIVER_STOP(transport_receiver, env) \ |
| ((transport_receiver->ops)->stop (transport_receiver, env)) |
| |
| /** Get reply to epr. |
| @sa axis2_transport_receiver#get_reply_to_epr */ |
| #define AXIS2_TRANSPORT_RECEIVER_GET_REPLY_TO_EPR(transport_receiver, env, svc_name) \ |
| ((transport_receiver->ops)->get_reply_to_epr (transport_receiver, env, svc_name)) |
| |
| /** Get conf ctx. |
| @sa axis2_transport_receiver#get_conf_ctx */ |
| #define AXIS2_TRANSPORT_RECEIVER_GET_CONF_CTX(transport_receiver, env) \ |
| ((transport_receiver)->ops->get_conf_ctx(transport_receiver, env)) |
| |
| /** Is running. |
| @sa axis2_transport_receiver#is_running */ |
| #define AXIS2_TRANSPORT_RECEIVER_IS_RUNNING(transport_receiver, env) \ |
| ((transport_receiver)->ops->is_running(transport_receiver, env)) |
| |
| /*************************** End of function macros ***************************/ |
| |
| /** @} */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif /* AXIS2_TRANSPORT_RECEIVER_H */ |