axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nabeel Yoosuf" <nabeel.yoo...@gmail.com>
Subject Re: [Axis2] Message Receiver - Suggestions
Date Mon, 05 Jun 2006 07:14:35 GMT
On 6/5/06, Damitha Kumarage <damitha23@gmail.com> wrote:
>
> Nabeel,
> Ideally what we should have is
>                 _______php_recv
>                 |
> _________raw_xml_msg_recv
>                 |                                 |
> msg_recv|______default_recv _|________some other default recv
>                 |                                 |
>                 |                                 |________some other
> default recv
>                 |
>                 |______some other recv
>
> Because then we can have skeleton creation methods in default_recv so
> that they need
> not be reimplemented in default message receivers. I think  your current
> concern is that you
> implement your php receiver based on message receiver, yet you don't
> want those
> svc skeleton create methods because you have your own php creation
> methods to implement.
> I think above design include your suggestions for message receiver.
> I will implement this ASAP

Damitha,
+1 ;  You have infact thought about this one more step ahead!

-Nabeel

thanks
> Damitha
>
>
>
> Nabeel Yoosuf wrote:
>
> > >From the point of view of writing custom message receivers, I see the
> > following modifications to msg_recv would be appropriate.
> >
> > 1. axis2_xml_in_out_msg_recv.h can be (and should be) made private.
> > This file has only one function - creating the the msg_recv struct.
> > This is used only by the axis2_get_instance function which is in the
> > same file where the create function is implemented. Hence, the header
> > should be made private.
> >
> > 2. svc_skeleton struct related functions can be moved out of msg_recv.
> > The msg_recv does not need to know anything about svc_skeleton.
> > The following functions in msg_recv are used only by
> > raw_xml_in_out_msg_recv.
> >
> > /* These two functions are not required to be in the msg_recv ops */
> > axis2_svc_skeleton_t * AXIS2_CALL
> > axis2_msg_recv_make_new_svc_obj(axis2_msg_recv_t *msg_recv,
> >                                     const axis2_env_t *env,
> >                                     struct axis2_msg_ctx *msg_ctx);
> >
> > axis2_svc_skeleton_t * AXIS2_CALL
> > axis2_msg_recv_get_impl_obj(axis2_msg_recv_t *msg_recv,
> >                             const axis2_env_t *env,
> >                             struct axis2_msg_ctx *msg_ctx);
> >
> >
> > 3.For the following function, the function pointer can be defined in
> > msg_recv ops and the impl lives
> > inside the extended msg receiver code (default impl does nothing).
> > axis2_status_t AXIS2_CALL
> > axis2_msg_recv_delete_svc_obj(axis2_msg_recv_t *msg_recv,
> >                                     const axis2_env_t *env,
> >                                     axis2_msg_ctx_t *msg_ctx);
> >
> > With the above changes, anyone who extends the msg_recv needs to
> > override only the following in their create function.
> >
> > msg_recv->ops->invoke_in_out_business_logic_sync
> > msg_recv->ops->delete_svc_obj (default impl does nothing)
> > msg_recv->ops->receive (default impl points to
> > msg_recv->ops->receive_sync)
> >
> > thanks
> > -Nabeel
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-dev-help@ws.apache.org
>
>

Mime
View raw message