// Reminder: Modify typemap.dat to customize the header file generated by wsdl2h
/* calculator.h
   Generated by wsdl2h 2.8.9 from http://192.168.2.2:8000/ServiceModelSamples/service?wsdl and ../../typemap.dat
   2012-05-23 00:15:28 GMT

   DO NOT INCLUDE THIS FILE DIRECTLY INTO YOUR PROJECT BUILDS
   USE THE soapcpp2-GENERATED SOURCE CODE FILES FOR YOUR PROJECT BUILDS

   gSOAP XML Web services tools.
   Copyright (C) 2001-2012 Robert van Engelen, Genivia Inc. All Rights Reserved.
   Part of this software is released under one of the following licenses:
   GPL or Genivia's license for commercial use.
*/

/** @page page_notes Usage Notes

NOTE:

 - Run soapcpp2 on calculator.h to generate the SOAP/XML processing logic.
   Use soapcpp2 option -I to specify paths for #import
   To build with STL, 'stlvector.h' is imported from 'import' dir in package.
   Use soapcpp2 option -i to generate improved proxy and server classes.
 - Use wsdl2h options -c and -s to generate pure C code or C++ code without STL.
 - Use 'typemap.dat' to control namespace bindings and type mappings.
   It is strongly recommended to customize the names of the namespace prefixes
   generated by wsdl2h. To do so, modify the prefix bindings in the Namespaces
   section below and add the modified lines to 'typemap.dat' to rerun wsdl2h.
 - Use Doxygen (www.doxygen.org) on this file to generate documentation.
 - Use wsdl2h options -nname and -Nname to globally rename the prefix 'ns'.
 - Use wsdl2h option -d to enable DOM support for xsd:anyType.
 - Use wsdl2h option -g to auto-generate readers and writers for root elements.
 - Struct/class members serialized as XML attributes are annotated with a '@'.
 - Struct/class members that have a special role are annotated with a '$'.

WARNING:

   DO NOT INCLUDE THIS FILE DIRECTLY INTO YOUR PROJECT BUILDS.
   USE THE SOURCE CODE FILES GENERATED BY soapcpp2 FOR YOUR PROJECT BUILDS:
   THE soapStub.h FILE CONTAINS THIS CONTENT WITHOUT ANNOTATIONS.

LICENSE:

@verbatim
--------------------------------------------------------------------------------
gSOAP XML Web services tools
Copyright (C) 2000-2012, Robert van Engelen, Genivia Inc. All Rights Reserved.

This software is released under one of the following two licenses:
1) GPL or 2) Genivia's license for commercial use.
--------------------------------------------------------------------------------
1) 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

This program is released under the GPL with the additional exemption that
compiling, linking, and/or using OpenSSL is allowed.
--------------------------------------------------------------------------------
2) A commercial-use license is available from Genivia, Inc., contact@genivia.com
--------------------------------------------------------------------------------
@endverbatim

*/


//gsoapopt w

/******************************************************************************\
 *                                                                            *
 * Definitions                                                                *
 *   http://tempuri.org/                                                      *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Import                                                                     *
 *                                                                            *
\******************************************************************************/


// STL vector containers (use option -s to remove STL dependency)
#import "stlvector.h"

/******************************************************************************\
 *                                                                            *
 * Schema Namespaces                                                          *
 *                                                                            *
\******************************************************************************/


/* NOTE:

It is strongly recommended to customize the names of the namespace prefixes
generated by wsdl2h. To do so, modify the prefix bindings below and add the
modified lines to typemap.dat to rerun wsdl2h:

tempuri = "http://tempuri.org/"
mssammi = "http://Microsoft.Samples.MessageSecurity/Imports"
mssamm = "http://Microsoft.Samples.MessageSecurity"

*/

#define SOAP_NAMESPACE_OF_mssammi	"http://Microsoft.Samples.MessageSecurity/Imports"
//gsoap mssammi schema namespace:	http://Microsoft.Samples.MessageSecurity/Imports
//gsoap mssammi schema form:	unqualified

#define SOAP_NAMESPACE_OF_mssamm	"http://Microsoft.Samples.MessageSecurity"
//gsoap mssamm schema namespace:	http://Microsoft.Samples.MessageSecurity
//gsoap mssamm schema elementForm:	qualified
//gsoap mssamm schema attributeForm:	unqualified

/******************************************************************************\
 *                                                                            *
 * Built-in Schema Types and Top-Level Elements and Attributes                *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Forward Declarations                                                       *
 *                                                                            *
\******************************************************************************/



//  Forward declaration of class _mssamm__Add.
class _mssamm__Add;

//  Forward declaration of class _mssamm__AddResponse.
class _mssamm__AddResponse;

//  Forward declaration of class _mssamm__Subtract.
class _mssamm__Subtract;

//  Forward declaration of class _mssamm__SubtractResponse.
class _mssamm__SubtractResponse;

//  Forward declaration of class _mssamm__Multiply.
class _mssamm__Multiply;

//  Forward declaration of class _mssamm__MultiplyResponse.
class _mssamm__MultiplyResponse;

//  Forward declaration of class _mssamm__Divide.
class _mssamm__Divide;

//  Forward declaration of class _mssamm__DivideResponse.
class _mssamm__DivideResponse;

/******************************************************************************\
 *                                                                            *
 * Schema Types and Top-Level Elements and Attributes                         *
 *   http://Microsoft.Samples.MessageSecurity/Imports                         *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Schema Types and Top-Level Elements and Attributes                         *
 *   http://Microsoft.Samples.MessageSecurity                                 *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Schema Complex Types and Top-Level Elements                                *
 *   http://Microsoft.Samples.MessageSecurity/Imports                         *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Schema Complex Types and Top-Level Elements                                *
 *   http://Microsoft.Samples.MessageSecurity                                 *
 *                                                                            *
\******************************************************************************/



/// Top-level root element "http://Microsoft.Samples.MessageSecurity":Add

/// "http://Microsoft.Samples.MessageSecurity":Add is a complexType.
class _mssamm__Add
{ public:
/// Element n1 of type xs:double.
    double*                              n1                             0;	///< Optional element.
/// Element n2 of type xs:double.
    double*                              n2                             0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":AddResponse

/// "http://Microsoft.Samples.MessageSecurity":AddResponse is a complexType.
class _mssamm__AddResponse
{ public:
/// Element AddResult of type xs:double.
    double*                              AddResult                      0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":Subtract

/// "http://Microsoft.Samples.MessageSecurity":Subtract is a complexType.
class _mssamm__Subtract
{ public:
/// Element n1 of type xs:double.
    double*                              n1                             0;	///< Optional element.
/// Element n2 of type xs:double.
    double*                              n2                             0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":SubtractResponse

/// "http://Microsoft.Samples.MessageSecurity":SubtractResponse is a complexType.
class _mssamm__SubtractResponse
{ public:
/// Element SubtractResult of type xs:double.
    double*                              SubtractResult                 0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":Multiply

/// "http://Microsoft.Samples.MessageSecurity":Multiply is a complexType.
class _mssamm__Multiply
{ public:
/// Element n1 of type xs:double.
    double*                              n1                             0;	///< Optional element.
/// Element n2 of type xs:double.
    double*                              n2                             0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":MultiplyResponse

/// "http://Microsoft.Samples.MessageSecurity":MultiplyResponse is a complexType.
class _mssamm__MultiplyResponse
{ public:
/// Element MultiplyResult of type xs:double.
    double*                              MultiplyResult                 0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":Divide

/// "http://Microsoft.Samples.MessageSecurity":Divide is a complexType.
class _mssamm__Divide
{ public:
/// Element n1 of type xs:double.
    double*                              n1                             0;	///< Optional element.
/// Element n2 of type xs:double.
    double*                              n2                             0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};


/// Top-level root element "http://Microsoft.Samples.MessageSecurity":DivideResponse

/// "http://Microsoft.Samples.MessageSecurity":DivideResponse is a complexType.
class _mssamm__DivideResponse
{ public:
/// Element DivideResult of type xs:double.
    double*                              DivideResult                   0;	///< Optional element.
/// A handle to the soap struct that manages this instance (automatically set)
    struct soap                         *soap                          ;
};

/******************************************************************************\
 *                                                                            *
 * Additional Top-Level Elements                                              *
 *   http://Microsoft.Samples.MessageSecurity/Imports                         *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Additional Top-Level Attributes                                            *
 *   http://Microsoft.Samples.MessageSecurity/Imports                         *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Additional Top-Level Elements                                              *
 *   http://Microsoft.Samples.MessageSecurity                                 *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Additional Top-Level Attributes                                            *
 *   http://Microsoft.Samples.MessageSecurity                                 *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Services                                                                   *
 *                                                                            *
\******************************************************************************/


//gsoap tempuri service name:	BasicHttpBinding_USCOREICalculator 
//gsoap tempuri service type:	ICalculator 
//gsoap tempuri service port:	http://192.168.2.2:8000/ServiceModelSamples/service 
//gsoap tempuri service namespace:	http://tempuri.org/ 
//gsoap tempuri service transport:	http://schemas.xmlsoap.org/soap/http 

/** @mainpage CalculatorService Definitions

@section CalculatorService_bindings Service Bindings

  - @ref BasicHttpBinding_USCOREICalculator

@section CalculatorService_more More Information

  - @ref page_notes "Usage Notes"

  - @ref page_XMLDataBinding "XML Data Binding"

  - @ref SOAP_ENV__Header "SOAP Header Content" (when applicable)

  - @ref SOAP_ENV__Detail "SOAP Fault Detail Content" (when applicable)


*/

/**

@page BasicHttpBinding_USCOREICalculator Binding "BasicHttpBinding_USCOREICalculator"

@section BasicHttpBinding_USCOREICalculator_operations Operations of Binding  "BasicHttpBinding_USCOREICalculator"

  - @ref __tempuri__Add

  - @ref __tempuri__Subtract

  - @ref __tempuri__Multiply

  - @ref __tempuri__Divide

@section BasicHttpBinding_USCOREICalculator_ports Endpoints of Binding  "BasicHttpBinding_USCOREICalculator"

  - http://192.168.2.2:8000/ServiceModelSamples/service

@section BasicHttpBinding_USCOREICalculator_policy Policy of Binding  "BasicHttpBinding_USCOREICalculator"

See Section @ref BasicHttpBinding_USCOREICalculator_policy_enablers

  - WS-Policy applicable to the service endpoint ports:
	- Exactly one of the following:
		- All of the following:
			- [7.5] WS-Security Asymmetric Binding (public key) requirements:
				- [7.1] Security Binding Algorithm Suite requirements:
					- Basic256
				- [7.2] WS-Security Header Layout requirements:
					- WS-Security headers may occur in any order (gSOAP allows this)
				- Initiator requirements:
					- [5.4.3] WS-Security X509 required:
					  -# IncludeToken = http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
						- An X509 Version 3 token should be used as defined in X509TokenProfile1.0
				- Recipient requirements:
					- [5.4.3] WS-Security X509 required:
					  -# IncludeToken = http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never
						- An X509 Version 3 token should be used as defined in X509TokenProfile1.0
				- WS-Security Timestamp should be set prior to send:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_add_Timestamp(soap, "Timestamp", <seconds>);
	@endcode
				- WS-Security Timestamp presence and expiration verified post-receive with:
	@code
	#include "plugin/wsseapi.h"
	if (soap_wsse_verify_Timestamp(soap)) ...<error>...
	@endcode
				- WS-Security Encrypt Signature
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_add_EncryptedKey_encrypt_only(soap, <SOAP_MEC_ENV_ENC_xxx_CBC>, NULL, <cert>, NULL, <issuer>, <serial>, "ds:Signature SOAP-ENV:Body");
	@endcode
				- WS-Security Sign Entire Headers and Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_set_wsu_id(soap, "<ns:tagname1> <ns:tagname2> ..."); // list each ns:tagname used in SOAP Header
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [9.1] WSS: SOAP Message Security 1.0 options:
				- Key Identifier References
				- Issuer Serial References

Note: use wsdl2h option -N to change the service binding prefix name

*/

/******************************************************************************\
 *                                                                            *
 * Service Binding                                                            *
 *   BasicHttpBinding_USCOREICalculator                                       *
 *                                                                            *
\******************************************************************************/


/******************************************************************************\
 *                                                                            *
 * Service Operation                                                          *
 *   __tempuri__Add                                                           *
 *                                                                            *
\******************************************************************************/


/// Operation "__tempuri__Add" of service binding "BasicHttpBinding_USCOREICalculator"

/**

Operation details:


  - WS-Policy applicable to the request message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - WS-Policy applicable to the response message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - SOAP document/literal style messaging

  - SOAP action: "http://Microsoft.Samples.MessageSecurity/ICalculator/Add"

  - Addressing method action: "http://tempuri.org//ICalculator/Add"

  - Addressing method output action: "http://tempuri.org//ICalculator/AddResponse"

C stub function (defined in soapClient.c[pp] generated by soapcpp2):
@code
  int soap_call___tempuri__Add(
    struct soap *soap,
    NULL, // char *endpoint = NULL selects default endpoint for this operation
    NULL, // char *action = NULL selects default action for this operation
    // request parameters:
    _mssamm__Add*                       mssamm__Add,
    // response parameters:
    _mssamm__AddResponse*               mssamm__AddResponse
  );
@endcode

C server function (called from the service dispatcher defined in soapServer.c[pp]):
@code
  int __tempuri__Add(
    struct soap *soap,
    // request parameters:
    _mssamm__Add*                       mssamm__Add,
    // response parameters:
    _mssamm__AddResponse*               mssamm__AddResponse
  );
@endcode

C++ proxy class (defined in soapBasicHttpBinding_USCOREICalculatorProxy.h):
@code
  class BasicHttpBinding_USCOREICalculatorProxy;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use proxy classes;

C++ service class (defined in soapBasicHttpBinding_USCOREICalculatorService.h):
@code
  class BasicHttpBinding_USCOREICalculatorService;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use service classes;

*/

//gsoap tempuri service method-style:	Add document
//gsoap tempuri service method-encoding:	Add literal
//gsoap tempuri service method-action:	Add http://Microsoft.Samples.MessageSecurity/ICalculator/Add
//gsoap tempuri service method-output-action:	Add http://tempuri.org//ICalculator/AddResponse
int __tempuri__Add(
    _mssamm__Add*                       mssamm__Add,	///< Request parameter
    _mssamm__AddResponse*               mssamm__AddResponse	///< Response parameter
);

/******************************************************************************\
 *                                                                            *
 * Service Operation                                                          *
 *   __tempuri__Subtract                                                      *
 *                                                                            *
\******************************************************************************/


/// Operation "__tempuri__Subtract" of service binding "BasicHttpBinding_USCOREICalculator"

/**

Operation details:


  - WS-Policy applicable to the request message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - WS-Policy applicable to the response message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - SOAP document/literal style messaging

  - SOAP action: "http://Microsoft.Samples.MessageSecurity/ICalculator/Subtract"

  - Addressing method action: "http://tempuri.org//ICalculator/Subtract"

  - Addressing method output action: "http://tempuri.org//ICalculator/SubtractResponse"

C stub function (defined in soapClient.c[pp] generated by soapcpp2):
@code
  int soap_call___tempuri__Subtract(
    struct soap *soap,
    NULL, // char *endpoint = NULL selects default endpoint for this operation
    NULL, // char *action = NULL selects default action for this operation
    // request parameters:
    _mssamm__Subtract*                  mssamm__Subtract,
    // response parameters:
    _mssamm__SubtractResponse*          mssamm__SubtractResponse
  );
@endcode

C server function (called from the service dispatcher defined in soapServer.c[pp]):
@code
  int __tempuri__Subtract(
    struct soap *soap,
    // request parameters:
    _mssamm__Subtract*                  mssamm__Subtract,
    // response parameters:
    _mssamm__SubtractResponse*          mssamm__SubtractResponse
  );
@endcode

C++ proxy class (defined in soapBasicHttpBinding_USCOREICalculatorProxy.h):
@code
  class BasicHttpBinding_USCOREICalculatorProxy;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use proxy classes;

C++ service class (defined in soapBasicHttpBinding_USCOREICalculatorService.h):
@code
  class BasicHttpBinding_USCOREICalculatorService;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use service classes;

*/

//gsoap tempuri service method-style:	Subtract document
//gsoap tempuri service method-encoding:	Subtract literal
//gsoap tempuri service method-action:	Subtract http://Microsoft.Samples.MessageSecurity/ICalculator/Subtract
//gsoap tempuri service method-output-action:	Subtract http://tempuri.org//ICalculator/SubtractResponse
int __tempuri__Subtract(
    _mssamm__Subtract*                  mssamm__Subtract,	///< Request parameter
    _mssamm__SubtractResponse*          mssamm__SubtractResponse	///< Response parameter
);

/******************************************************************************\
 *                                                                            *
 * Service Operation                                                          *
 *   __tempuri__Multiply                                                      *
 *                                                                            *
\******************************************************************************/


/// Operation "__tempuri__Multiply" of service binding "BasicHttpBinding_USCOREICalculator"

/**

Operation details:


  - WS-Policy applicable to the request message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - WS-Policy applicable to the response message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - SOAP document/literal style messaging

  - SOAP action: "http://Microsoft.Samples.MessageSecurity/ICalculator/Multiply"

  - Addressing method action: "http://tempuri.org//ICalculator/Multiply"

  - Addressing method output action: "http://tempuri.org//ICalculator/MultiplyResponse"

C stub function (defined in soapClient.c[pp] generated by soapcpp2):
@code
  int soap_call___tempuri__Multiply(
    struct soap *soap,
    NULL, // char *endpoint = NULL selects default endpoint for this operation
    NULL, // char *action = NULL selects default action for this operation
    // request parameters:
    _mssamm__Multiply*                  mssamm__Multiply,
    // response parameters:
    _mssamm__MultiplyResponse*          mssamm__MultiplyResponse
  );
@endcode

C server function (called from the service dispatcher defined in soapServer.c[pp]):
@code
  int __tempuri__Multiply(
    struct soap *soap,
    // request parameters:
    _mssamm__Multiply*                  mssamm__Multiply,
    // response parameters:
    _mssamm__MultiplyResponse*          mssamm__MultiplyResponse
  );
@endcode

C++ proxy class (defined in soapBasicHttpBinding_USCOREICalculatorProxy.h):
@code
  class BasicHttpBinding_USCOREICalculatorProxy;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use proxy classes;

C++ service class (defined in soapBasicHttpBinding_USCOREICalculatorService.h):
@code
  class BasicHttpBinding_USCOREICalculatorService;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use service classes;

*/

//gsoap tempuri service method-style:	Multiply document
//gsoap tempuri service method-encoding:	Multiply literal
//gsoap tempuri service method-action:	Multiply http://Microsoft.Samples.MessageSecurity/ICalculator/Multiply
//gsoap tempuri service method-output-action:	Multiply http://tempuri.org//ICalculator/MultiplyResponse
int __tempuri__Multiply(
    _mssamm__Multiply*                  mssamm__Multiply,	///< Request parameter
    _mssamm__MultiplyResponse*          mssamm__MultiplyResponse	///< Response parameter
);

/******************************************************************************\
 *                                                                            *
 * Service Operation                                                          *
 *   __tempuri__Divide                                                        *
 *                                                                            *
\******************************************************************************/


/// Operation "__tempuri__Divide" of service binding "BasicHttpBinding_USCOREICalculator"

/**

Operation details:


  - WS-Policy applicable to the request message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - WS-Policy applicable to the response message:
	- Exactly one of the following:
		- All of the following:
			- [4.1.1] WS-Security Signed Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_sign_body(soap, <algorithm>, <key>, <keylen>);
	@endcode
			- [4.2.1] Security Encrypted Parts requirements:
			  -# Body:
	@code
	#include "plugin/wsseapi.h"
	soap_wsse_encrypt_body(soap, <algorithm>, <key>, <keylen>);
	@endcode

  - SOAP document/literal style messaging

  - SOAP action: "http://Microsoft.Samples.MessageSecurity/ICalculator/Divide"

  - Addressing method action: "http://tempuri.org//ICalculator/Divide"

  - Addressing method output action: "http://tempuri.org//ICalculator/DivideResponse"

C stub function (defined in soapClient.c[pp] generated by soapcpp2):
@code
  int soap_call___tempuri__Divide(
    struct soap *soap,
    NULL, // char *endpoint = NULL selects default endpoint for this operation
    NULL, // char *action = NULL selects default action for this operation
    // request parameters:
    _mssamm__Divide*                    mssamm__Divide,
    // response parameters:
    _mssamm__DivideResponse*            mssamm__DivideResponse
  );
@endcode

C server function (called from the service dispatcher defined in soapServer.c[pp]):
@code
  int __tempuri__Divide(
    struct soap *soap,
    // request parameters:
    _mssamm__Divide*                    mssamm__Divide,
    // response parameters:
    _mssamm__DivideResponse*            mssamm__DivideResponse
  );
@endcode

C++ proxy class (defined in soapBasicHttpBinding_USCOREICalculatorProxy.h):
@code
  class BasicHttpBinding_USCOREICalculatorProxy;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use proxy classes;

C++ service class (defined in soapBasicHttpBinding_USCOREICalculatorService.h):
@code
  class BasicHttpBinding_USCOREICalculatorService;
@endcode
Important: use soapcpp2 option '-i' to generate greatly improved and easy-to-use service classes;

*/

//gsoap tempuri service method-style:	Divide document
//gsoap tempuri service method-encoding:	Divide literal
//gsoap tempuri service method-action:	Divide http://Microsoft.Samples.MessageSecurity/ICalculator/Divide
//gsoap tempuri service method-output-action:	Divide http://tempuri.org//ICalculator/DivideResponse
int __tempuri__Divide(
    _mssamm__Divide*                    mssamm__Divide,	///< Request parameter
    _mssamm__DivideResponse*            mssamm__DivideResponse	///< Response parameter
);

/**

@page BasicHttpBinding_USCOREICalculator Binding "BasicHttpBinding_USCOREICalculator"

@section BasicHttpBinding_USCOREICalculator_policy_enablers Policy Enablers of Binding  "BasicHttpBinding_USCOREICalculator"

Based on policies, this service imports wsse.h

  - WS-Policy reminders and enablers:
    - WS-Addressing 1.0 (2005/08, accepts 2004/08):
	@code
	#import "wsa5.h" // to be added to this header file for the soapcpp2 build step
	@endcode
	@code
	#include "plugin/wsaapi.h"
	soap_register_plugin(soap, soap_wsa); // register the wsa plugin in your code
	// See the user guide gsoap/doc/wsa/html/index.html
	@endcode
    - WS-Addressing (2004/08):
	@code
	#import "wsa.h" // to be added to this header file for the soapcpp2 build step
	@endcode
	@code
	#include "plugin/wsaapi.h"
	soap_register_plugin(soap, soap_wsa); // register the wsa plugin in your code
	// See the user guide gsoap/doc/wsa/html/index.html
	@endcode
    - WS-ReliableMessaging 1.1:
	@code
	#import "wsrm.h" // to be added to this header file for the soapcpp2 build step
	@endcode
	@code
	#include "plugin/wsrmapi.h"
	soap_register_plugin(soap, soap_wsa); // register the wsa plugin in your code
	soap_register_plugin(soap, soap_wsrm); // register the wsrm plugin in your code
	// See the user guide gsoap/doc/wsrm/html/index.html
	@endcode
    - WS-Security (SOAP Message Security) 1.0 (accepts 1.1):
	@code
	#import "wsse.h" // to be added to this header file for the soapcpp2 build step
	@endcode
	@code
	#include "plugin/wsseapi.h"
	soap_register_plugin(soap, soap_wsse); // register the wsse plugin in your code
	// See the user guide gsoap/doc/wsse/html/index.html
	@endcode
    - WS-Security (SOAP Message Security) 1.1 (accepts 1.0):
	@code
	#import "wsse11.h" // to be added to this header file for the soapcpp2 build step
	@endcode
	@code
	#include "plugin/wsseapi.h"
	soap_register_plugin(soap, soap_wsse); // register the wsse plugin in your code
	// See the user guide gsoap/doc/wsse/html/index.html
	@endcode
    - HTTP Digest Authentication:
	@code
	#include "plugin/httpda.h"
	soap_register_plugin(soap, soap_http_da); // register the HTTP DA plugin in your code
	// See the user guide gsoap/doc/httpda/html/index.html
	@endcode
*/

#import "wsse.h"

/******************************************************************************\
 *                                                                            *
 * XML Data Binding                                                           *
 *                                                                            *
\******************************************************************************/


/**

@page page_XMLDataBinding XML Data Binding

SOAP/XML services use data bindings contractually bound by WSDL and auto-
generated by wsdl2h and soapcpp2 (see Service Bindings). Plain data bindings
are adopted from XML schemas as part of the WSDL types section or when running
wsdl2h on a set of schemas to produce non-SOAP-based XML data bindings.

The following readers and writers are C/C++ data type (de)serializers auto-
generated by wsdl2h and soapcpp2. Run soapcpp2 on this file to generate the
(de)serialization code, which is stored in soapC.c[pp]. Include "soapH.h" in
your code to import these data type and function declarations. Only use the
soapcpp2-generated files in your project build. Do not include the wsdl2h-
generated .h file in your code.

XML content can be retrieved from:
  - a file descriptor, using soap->recvfd = fd
  - a socket, using soap->socket = ...
  - a C++ stream, using soap->is = ...
  - a buffer, using the soap->frecv() callback

XML content can be stored to:
  - a file descriptor, using soap->sendfd = fd
  - a socket, using soap->socket = ...
  - a C++ stream, using soap->os = ...
  - a buffer, using the soap->fsend() callback


@section mssammi Top-level root elements of schema "http://Microsoft.Samples.MessageSecurity/Imports"

@section mssamm Top-level root elements of schema "http://Microsoft.Samples.MessageSecurity"

  - <mssamm:Add> @ref _mssamm__Add
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__Add(struct soap*, _mssamm__Add*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__Add(struct soap*, _mssamm__Add*);
    @endcode

  - <mssamm:AddResponse> @ref _mssamm__AddResponse
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__AddResponse(struct soap*, _mssamm__AddResponse*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__AddResponse(struct soap*, _mssamm__AddResponse*);
    @endcode

  - <mssamm:Subtract> @ref _mssamm__Subtract
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__Subtract(struct soap*, _mssamm__Subtract*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__Subtract(struct soap*, _mssamm__Subtract*);
    @endcode

  - <mssamm:SubtractResponse> @ref _mssamm__SubtractResponse
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__SubtractResponse(struct soap*, _mssamm__SubtractResponse*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__SubtractResponse(struct soap*, _mssamm__SubtractResponse*);
    @endcode

  - <mssamm:Multiply> @ref _mssamm__Multiply
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__Multiply(struct soap*, _mssamm__Multiply*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__Multiply(struct soap*, _mssamm__Multiply*);
    @endcode

  - <mssamm:MultiplyResponse> @ref _mssamm__MultiplyResponse
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__MultiplyResponse(struct soap*, _mssamm__MultiplyResponse*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__MultiplyResponse(struct soap*, _mssamm__MultiplyResponse*);
    @endcode

  - <mssamm:Divide> @ref _mssamm__Divide
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__Divide(struct soap*, _mssamm__Divide*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__Divide(struct soap*, _mssamm__Divide*);
    @endcode

  - <mssamm:DivideResponse> @ref _mssamm__DivideResponse
    @code
    // Reader (returns SOAP_OK on success):
    soap_read__mssamm__DivideResponse(struct soap*, _mssamm__DivideResponse*);
    // Writer (returns SOAP_OK on success):
    soap_write__mssamm__DivideResponse(struct soap*, _mssamm__DivideResponse*);
    @endcode

*/

/* End of calculator.h */
