axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kenneth Chiu <ch...@cs.indiana.edu>
Subject Re: writing C++ methods that passes and/or returns arrays
Date Wed, 30 Jul 2003 02:08:35 GMT
On Tue, 29 Jul 2003 susantha@opensource.lk wrote:

> Hi all,
>
> Passing arrays as parameters to a method
> ----------------------------------------
> Doing this C++ differs from Java. Usually in C++ we pass the size of the
> array in another parameter so that inside the method it know the size of the
> array.
>
> In Java this is not a problem because an Array itself is a class that has the
> size. So a method in java,
>           int EchoIntArray(int []) corresponds to int EchoArray(int [], int)
> in C++.
>
> Suppose some one needs to write a web service for this method and the method
> signature that the WSDL describes corresponds to the method signature in Java
> exactly but not the C++ one.
>
> So how should a C++ developer implement his service corresponding to the
> WSDL ?
>
> This way that we (Axis C++) asks the C++ web service developer should be
> decided in order to improve Wrapper Class Generator (WCG) to handle passing
> and returning arrays from methods.
>
> I find that we can give 2 solutions,
>
> 1. Introduce Axis C++ own Array class. So the method signature becomes
>          int EchoIntArray(AxisArray a)
>
> 2. Ask the C++ developer to specify the meaning of other parameters by using
> a predefined Axis C++ macro. Then the method signature becomes,
>          int EchoIntArray(int [], ARRAYINSIZE int);
>
> Which is the best option to choose. IMO I like second.
>
> Also if you find any other solution please discuss.
>
> Comments on this is very much appreciated.

I suggest 1, or use std::array, simply because number 2
seems error-prone.  Also, if you encapsulate the array in an
object, you can add range checking.  You can
#ifdef-out the range-checking in the release build.

Whether to write your own or use std::array depends on a lot
of factors.

Mime
View raw message