/* calc.h This is a gSOAP header file with web service definitions. The service operations and type definitions use familiar C/C++ syntax. The following methods are defined by this gSOAP service definition: add(a,b) sub(a,b) mul(a,b) div(a,b) pow(a,b) Compilation in C (see samples/calc): $ soapcpp2 -c calc.h $ cc -o calcclient calcclient.c stdsoap2.c soapC.c soapClient.c $ cc -o calcserver calcserver.c stdsoap2.c soapC.c soapServer.c Compilation in C++ (see samples/calc++): $ soapcpp2 -i calc.h $ cc -o calcclient++ calcclient.cpp stdsoap2.cpp soapC.cpp soapcalcProxy.cpp $ cc -o calcserver++ calcserver.cpp stdsoap2.cpp soapC.cpp soapcalcService.cpp Note that soapcpp2 option -i generates proxy and service classes, which encapsulate the method operations in the class instead of defining them as global functions as in C. The //gsoap directives are used to bind XML namespaces and to define Web service properties: //gsoap service name: //gsoap service style: [rpc|document] //gsoap service encoding: [literal|encoded] //gsoap service namespace: //gsoap service location: Web service operation properties: //gsoap service method-style: [rpc|document] //gsoap service method-encoding: [literal|encoded] //gsoap service method-action: //gsoap service method-documentation: and type schema properties: //gsoap schema namespace: //gsoap schema elementForm: [qualified|unqualified] //gsoap schema attributeForm: [qualified|unqualified] //gsoap schema documentation: //gsoap schema type-documentation: where is an XML namespace prefix, which is used in C/C++ operation names, e.g. ns__add(), and type names, e.g. xsd__int. See the documentation for the full list of //gsoap directives. -------------------------------------------------------------------------------- gSOAP XML Web services tools Copyright (C) 2001-2008, Robert van Engelen, Genivia, Inc. All Rights Reserved. This software is released under one of the following two licenses: GPL or Genivia's license for commercial use. -------------------------------------------------------------------------------- GPL license. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Author contact information: engelen@genivia.com / engelen@acm.org -------------------------------------------------------------------------------- A commercial use license is available from Genivia, Inc., contact@genivia.com -------------------------------------------------------------------------------- */ //gsoap ns service name: calc Simple calculator service //gsoap ns service style: rpc //gsoap ns service encoding: encoded //gsoap ns service namespace: http://websrv.cs.fsu.edu/~engelen/calc.wsdl //gsoap ns service location: http://websrv.cs.fsu.edu/~engelen/calcserver.cgi //gsoap ns schema namespace: urn:calc //gsoap ns service method-documentation: add Sums two values int ns__add(double a, double b, double *result); //gsoap ns service method-documentation: sub Subtracts two values int ns__sub(double a, double b, double *result); //gsoap ns service method-documentation: mul Multiplies two values int ns__mul(double a, double b, double *result); //gsoap ns service method-documentation: div Divides two values int ns__div(double a, double b, double *result); //gsoap ns service method-documentation: pow Raises a to b int ns__pow(double a, double b, double *result);