axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Whitlock <>
Subject C support
Date Fri, 28 Jan 2005 16:39:21 GMT

I have now finished C support for this release and committed my changes.

As I mentioned in my earlier note, I have only been able to enable limited
support for C in this release. I have added in....
 - A build tool that generates the C header files from the C++ header files
so ensuring that the 2 are kept in step. This tool is run as part of the
ant build and is not shipped.
 - The implementation of the C bindings built into a separate library
 - WSDL2WS generates the simple client stubs to this new client C API
 - Support for complex types
 - The Calculator and ComplexTypeAll clients written in C work successfully

This really is limited support since I have not added in...
 - rpc-encoded
 - ssl support
 - namespace changes
 - arrays
 - hexBinary/base64Binary/AnyType
 - services
 - handlers
 - samples
 - tests

If you change the external C++ headers, please also change the C bindings
to keep them in step, otherwise the build may break. The external C headers
are generated from the C++ headers. But the implementation of the C
bindings (the stubs that implement the C functions and call the Axis C++
engine) are source code checked into cvs. These two have to match otherwise
the build will break! This is good since it makes sure the C and C++ APIs
are always kept in step.

So when you change the external C++ headers please...
 - find the corresponding C binding file in ws-axis/c/cbindings and update
it to reflect your changes
 - if you have changed GDefine.hpp or AxisUserAPI.hpp, then please update
GDefine.h or AxisUserAPI.h since these are not generated. They proved
tricky to automatically generate so I coded them manually
 - there are a few methods/headers that are in the C++ API but not in the C
API. These are listed in
ws-axis/c/tools/org/apache/axis/tools/cbindings/cbindinggenerator.conf. So
you can ignore these excluded methods/files unless you would like to add
them into the C API.

I hope to continue enhancing the C support in future releases,
Mark Whitlock

View raw message