/*

udp.h

SOAP-over-UDP demo specification for udpclient and udpserver examples

Requires WS-Addressing from import/wsa.h

--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
*/

////////////////////////////////////////////////////////////////////////////////
//
//	Import WS-Addressing
//
////////////////////////////////////////////////////////////////////////////////

//gsoap wsa schema import: http://schemas.xmlsoap.org/ws/2004/08/addressing

#import "wsa.h"		// wsa.h is in the import directory

////////////////////////////////////////////////////////////////////////////////
//
//	Demo UDP service
//
////////////////////////////////////////////////////////////////////////////////

//gsoap ns service name:	udp
//gsoap ns service namespace:	urn:gsoap-udp-demo
//gsoap ns service location:	soap.udp://localhost:10000

//	I would have assumed UDP transport to be defined in the WSDL bindings,
//	but this doesn't appear to be possible, so we will use the default HTTP
//	transport binding and omit the transport directive below.
// ---> //gsoap ns service transport:	... ???

////////////////////////////////////////////////////////////////////////////////
//
//	SOAP-over-UDP SOAP Headers with WS-Addressing
//
////////////////////////////////////////////////////////////////////////////////

struct SOAP_ENV__Header
{
  mustUnderstand _wsa__MessageID      wsa__MessageID 0; ///< WS-Addressing
  mustUnderstand _wsa__RelatesTo     *wsa__RelatesTo 0; ///< WS-Addressing
  mustUnderstand _wsa__From          *wsa__From      0; ///< WS-Addressing
  mustUnderstand _wsa__ReplyTo       *wsa__ReplyTo   0; ///< WS-Addressing
  mustUnderstand _wsa__FaultTo       *wsa__FaultTo   0; ///< WS-Addressing
  mustUnderstand _wsa__To             wsa__To        0; ///< WS-Addressing
  mustUnderstand _wsa__Action         wsa__Action    0; ///< WS-Addressing
};

////////////////////////////////////////////////////////////////////////////////
//
//	echoString (anonymous) request-response MEP over UDP
//
////////////////////////////////////////////////////////////////////////////////

//gsoap ns service method-documentation: echoString Demo (anonymous) request-response MEP over UDP

//gsoap ns service method-header-part:		echoString wsa__MessageID
//gsoap ns service method-header-part:		echoString wsa__To
//gsoap ns service method-header-part:		echoString wsa__Action
//gsoap ns service method-input-header-part:	sendString wsa__ReplyTo
//gsoap ns service method-output-header-part:	echoString wsa__RelatesTo

int ns__echoString(char *str, char **res);

////////////////////////////////////////////////////////////////////////////////
//
//	sendString one-way MEP over UDP
//
////////////////////////////////////////////////////////////////////////////////

//gsoap ns service method-documentation: sendString Demo one-way MEP over UDP

//gsoap ns service method-header-part:		sendString wsa__MessageID
//gsoap ns service method-header-part:		sendString wsa__To
//gsoap ns service method-header-part:		sendString wsa__Action

int ns__sendString(char *str, void);
