axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: Transport layer?
Date Fri, 21 May 2004 11:40:44 GMT

 Hi John,

Sorry this mail was not replied to sooner.

There is no API or UML design documented as yet. We will get around to
this as soon as we can. Right now its a mad rush to the deadline, please
bear with us.
However I have started the transport and parser abstractions notes to be
added to the documentation (see below).This is still work in progress and
not yet been published to the site.
I have tried to give a description of Transport and Parser abstractions.
This also will be improved in due course.


1)Transport Abstraction -
 Transport layer coding can be given in another interface.So that a user
can create his/her own transport interface.For eg:MyAxisTransport.This is
an instance of AxisTransport class which is independent of the transport
The following 2 export functions have to be created in MyAxisTransport.

Create Instance (Soap transport *pOut)
Destroy Instance (Soap transport *pIn)

When AxisServer or AxisClient and MyAxisTransport projects are compiled
the relevant Dlls will be created. (By building AxisTransport in VC++
distribution workspace AxisTransport.dll will be built)
At run time AxisServer.dll or AxisClient.dll loads the created transport
object through above mentioned  export functions

Note:For AxisServer to run the following files should be there
 AxisCPP.conf , Server.wsdd and Log file. For the client application these
 files are not necessary

2)Parser Abstraction -

Can dynamically select a parser (Xerces or Expat)at runtime.Since
AxisServer or AxisClient and parser are compiled separately.
A user can create his/her own parser For eg:MyXMLParser derived from
XMLParser (AxisXMLParserXerces or AxisXMLParserExpat).
The following 2 export functions have to be created in MyXMLParser.

Create Instance ()
Destroy Instance ()

Then compile AxisServer or AxisClient and MyXMLParser projects in VC++
Distribution workspace.Then the relevant Dlls will be created.

Build the AxisTransport and AxisXMLParser projects,Which will build the
AxisTransport.dll and AxisXMLParser.dll and also AxisTransport.lib and
AxisXMLParser.lib in [CHECKOUT_HOME]\c\bin.

3)Then Copy AxisTransport.dll and AxisXMLParser.dll  to any location
specified by your PATH environment variable.Better to paste them in
[AXIS_HOME]\libs\ directory

4)Add the following lines to axiscpp.conf.
If the selected transport is HTTP then ZZZZ will be the path to
AxisTransport.dll (if the selected transport is SMTP then should give that
path.)WWWW will be the path to AxisXMLParser.dll


If the AxisTransport.dll and AxisXMLParser.dll paths are not given in
axiscpp.conf then the hardcoded values will be used.For that set the path
of these 2 in the PATH environment variable or copy them to the same
location as the Client.exe.

5)When coding the client add the following libs to the library modules
path of this project in addition to Axisclient.lib

AxisTransport.lib & AxisXMLParser.lib.

> Hi Folks,
> I understand that there are a lot of transport and parser abstractions
> going on at the moment.
> Could someone please publish the API's so that we can all see them prior
> to
> being coded.
> On this mailing list there are discussions about individual methods and
> improvements but there never seems to be an overall view. Does anyone have
> any UML models they can share? If not then the API's would be a good first
> step.
> many thanks,
> John.

View raw message