// Reminder: Modify typemap.dat to customize the header file generated by wsdl2h /* calc.h Generated by wsdl2h 2.8.126 from calc.wsdl and typemap.dat 2026-08-23 01:50:25 GMT DO NOT INCLUDE THIS ANNOTATED FILE DIRECTLY IN YOUR PROJECT SOURCE CODE. USE THE FILES GENERATED BY soapcpp2 FOR YOUR PROJECT'S SOURCE CODE. gSOAP XML Web services tools Copyright (C) 2000-2022, Robert van Engelen, Genivia Inc. All Rights Reserved. This program is released under the GPL with the additional exemption that compiling, linking, and/or using OpenSSL is allowed. -------------------------------------------------------------------------------- A commercial use license is available from Genivia Inc., contact@genivia.com -------------------------------------------------------------------------------- */ /** @page page_notes Notes @note HINTS: - Run soapcpp2 on calc.h to generate the SOAP/XML processing logic: Use soapcpp2 -I to specify paths for #import Use soapcpp2 -j to generate improved proxy and server classes. Use soapcpp2 -r to generate a report. - Edit '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. - Run Doxygen (www.doxygen.org) on this file to generate documentation. - Use wsdl2h -c to generate pure C code. - Use wsdl2h -R to include the REST operations defined by the WSDLs. - Use wsdl2h -O3 or -O4 to optimize by removing unused schema components. - Use wsdl2h -d to enable DOM support for xsd:any and xsd:anyType. - Use wsdl2h -F to simulate struct-type derivation in C (also works in C++). - Use wsdl2h -f to generate flat C++ class hierarchy, removes type derivation. - Use wsdl2h -g to generate top-level root elements with readers and writers. - Use wsdl2h -U to map XML names to C++ Unicode identifiers instead of _xNNNN. - Use wsdl2h -u to disable the generation of unions. - Use wsdl2h -L to remove this @note and all other @note comments. - Use wsdl2h -nname to use name as the base namespace prefix instead of 'ns'. - Use wsdl2h -Nname for service prefix and produce multiple service bindings - 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 ANNOTATED FILE DIRECTLY IN YOUR PROJECT SOURCE CODE. USE THE FILES GENERATED BY soapcpp2 FOR YOUR PROJECT'S SOURCE CODE: THE GENERATED soapStub.h FILE CONTAINS THIS CONTENT WITHOUT ANNOTATIONS. @copyright LICENSE: @verbatim -------------------------------------------------------------------------------- gSOAP XML Web services tools Copyright (C) 2000-2023, Robert van Engelen, Genivia Inc. All Rights Reserved. The wsdl2h tool and its generated software are released under the GPL. This software is released under the GPL with the additional exemption that compiling, linking, and/or using OpenSSL is allowed. -------------------------------------------------------------------------------- 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. -------------------------------------------------------------------------------- A commercial-use license is available from Genivia, Inc., contact@genivia.com -------------------------------------------------------------------------------- @endverbatim */ //gsoapopt c++,w /******************************************************************************\ * * * Definitions * * urn:calc * * * \******************************************************************************/ /******************************************************************************\ * * * $CONTAINER typemap variable: * * std::vector * * * \******************************************************************************/ #include template class std::vector; /******************************************************************************\ * * * $SIZE typemap variable: * * int * * * \******************************************************************************/ /******************************************************************************\ * * * Import * * * \******************************************************************************/ /******************************************************************************\ * * * 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' then rerun wsdl2h (use wsdl2h -t typemap.dat): ns1 = "urn:calc" */ #define SOAP_NAMESPACE_OF_ns1 "urn:calc" //gsoap ns1 schema namespace: urn:calc //gsoap ns1 schema elementForm: qualified //gsoap ns1 schema attributeForm: unqualified /******************************************************************************\ * * * Built-in Schema Types and Top-Level Elements and Attributes * * * \******************************************************************************/ /******************************************************************************\ * * * Forward Declarations * * * \******************************************************************************/ class ns1__Operands; class _ns1__calcRequest; class _ns1__calcResponse; class _ns1__listRequest; class _ns1__listResponse; /******************************************************************************\ * * * Schema Types and Top-Level Elements and Attributes * * urn:calc * * * \******************************************************************************/ /// @brief "urn:calc":Op is a simpleType restriction of type xs:string. /// /// @note The enum values are prefixed with "ns1__Op__" to prevent name clashes: use wsdl2h option -e to omit this prefix or use option -c++11 for scoped enumerations enum ns1__Op { ns1__Op__add, ///< xs:string value="add" ns1__Op__sub, ///< xs:string value="sub" ns1__Op__mul, ///< xs:string value="mul" ns1__Op__div, ///< xs:string value="div" }; /******************************************************************************\ * * * Schema Complex Types and Top-Level Elements * * urn:calc * * * \******************************************************************************/ /// @brief "urn:calc":Operands is a complexType. /// /// @note class ns1__Operands operations: /// - ns1__Operands* soap_new_ns1__Operands(soap*) allocate and default initialize /// - ns1__Operands* soap_new_ns1__Operands(soap*, int num) allocate and default initialize an array /// - ns1__Operands* soap_new_req_ns1__Operands(soap*, ...) allocate, set required members /// - ns1__Operands* soap_new_set_ns1__Operands(soap*, ...) allocate, set all public members /// - ns1__Operands::soap_default(soap*) default initialize members /// - int soap_read_ns1__Operands(soap*, ns1__Operands*) deserialize from a stream /// - int soap_write_ns1__Operands(soap*, ns1__Operands*) serialize to a stream /// - ns1__Operands* ns1__Operands::soap_dup(soap*) returns deep copy of ns1__Operands, copies the (cyclic) graph structure when a context is provided, or (cycle-pruned) tree structure with soap_set_mode(soap, SOAP_XML_TREE) (use soapcpp2 -Ec) /// - ns1__Operands::soap_del() deep deletes ns1__Operands data members, use only after ns1__Operands::soap_dup(NULL) (use soapcpp2 -Ed) /// - int ns1__Operands::soap_type() returns SOAP_TYPE_ns1__Operands or derived type identifier class ns1__Operands { public: /// Element "a" of type xs:double. double a 1; ///< Required element. /// Element "b" of type xs:double. double b 1; ///< Required element. /// Pointer to soap context that manages this instance. struct soap *soap ; }; /// @brief Top-level root element "urn:calc":calcRequest /// @brief "urn:calc":calcRequest is a complexType. /// /// @note class _ns1__calcRequest operations: /// - _ns1__calcRequest* soap_new__ns1__calcRequest(soap*) allocate and default initialize /// - _ns1__calcRequest* soap_new__ns1__calcRequest(soap*, int num) allocate and default initialize an array /// - _ns1__calcRequest* soap_new_req__ns1__calcRequest(soap*, ...) allocate, set required members /// - _ns1__calcRequest* soap_new_set__ns1__calcRequest(soap*, ...) allocate, set all public members /// - _ns1__calcRequest::soap_default(soap*) default initialize members /// - int soap_read__ns1__calcRequest(soap*, _ns1__calcRequest*) deserialize from a stream /// - int soap_write__ns1__calcRequest(soap*, _ns1__calcRequest*) serialize to a stream /// - _ns1__calcRequest* _ns1__calcRequest::soap_dup(soap*) returns deep copy of _ns1__calcRequest, copies the (cyclic) graph structure when a context is provided, or (cycle-pruned) tree structure with soap_set_mode(soap, SOAP_XML_TREE) (use soapcpp2 -Ec) /// - _ns1__calcRequest::soap_del() deep deletes _ns1__calcRequest data members, use only after _ns1__calcRequest::soap_dup(NULL) (use soapcpp2 -Ed) /// - int _ns1__calcRequest::soap_type() returns SOAP_TYPE__ns1__calcRequest or derived type identifier class _ns1__calcRequest { public: /// Element "op" of type "urn:calc":Op. enum ns1__Op op 1; ///< Required element. /// Element "operands" of type "urn:calc":Operands. ns1__Operands* operands 1; ///< Required element. /// Pointer to soap context that manages this instance. struct soap *soap ; }; /// @brief Top-level root element "urn:calc":calcResponse /// @brief "urn:calc":calcResponse is a complexType. /// /// @note class _ns1__calcResponse operations: /// - _ns1__calcResponse* soap_new__ns1__calcResponse(soap*) allocate and default initialize /// - _ns1__calcResponse* soap_new__ns1__calcResponse(soap*, int num) allocate and default initialize an array /// - _ns1__calcResponse* soap_new_req__ns1__calcResponse(soap*, ...) allocate, set required members /// - _ns1__calcResponse* soap_new_set__ns1__calcResponse(soap*, ...) allocate, set all public members /// - _ns1__calcResponse::soap_default(soap*) default initialize members /// - int soap_read__ns1__calcResponse(soap*, _ns1__calcResponse*) deserialize from a stream /// - int soap_write__ns1__calcResponse(soap*, _ns1__calcResponse*) serialize to a stream /// - _ns1__calcResponse* _ns1__calcResponse::soap_dup(soap*) returns deep copy of _ns1__calcResponse, copies the (cyclic) graph structure when a context is provided, or (cycle-pruned) tree structure with soap_set_mode(soap, SOAP_XML_TREE) (use soapcpp2 -Ec) /// - _ns1__calcResponse::soap_del() deep deletes _ns1__calcResponse data members, use only after _ns1__calcResponse::soap_dup(NULL) (use soapcpp2 -Ed) /// - int _ns1__calcResponse::soap_type() returns SOAP_TYPE__ns1__calcResponse or derived type identifier class _ns1__calcResponse { public: /// Element "result" of type xs:double. double result 1; ///< Required element. /// Element "note" of type xs:string. std::string* note 0; ///< Optional element. /// Pointer to soap context that manages this instance. struct soap *soap ; }; /// @brief Top-level root element "urn:calc":listRequest /// @brief "urn:calc":listRequest is a complexType. /// /// @note class _ns1__listRequest operations: /// - _ns1__listRequest* soap_new__ns1__listRequest(soap*) allocate and default initialize /// - _ns1__listRequest* soap_new__ns1__listRequest(soap*, int num) allocate and default initialize an array /// - _ns1__listRequest* soap_new_req__ns1__listRequest(soap*, ...) allocate, set required members /// - _ns1__listRequest* soap_new_set__ns1__listRequest(soap*, ...) allocate, set all public members /// - _ns1__listRequest::soap_default(soap*) default initialize members /// - int soap_read__ns1__listRequest(soap*, _ns1__listRequest*) deserialize from a stream /// - int soap_write__ns1__listRequest(soap*, _ns1__listRequest*) serialize to a stream /// - _ns1__listRequest* _ns1__listRequest::soap_dup(soap*) returns deep copy of _ns1__listRequest, copies the (cyclic) graph structure when a context is provided, or (cycle-pruned) tree structure with soap_set_mode(soap, SOAP_XML_TREE) (use soapcpp2 -Ec) /// - _ns1__listRequest::soap_del() deep deletes _ns1__listRequest data members, use only after _ns1__listRequest::soap_dup(NULL) (use soapcpp2 -Ed) /// - int _ns1__listRequest::soap_type() returns SOAP_TYPE__ns1__listRequest or derived type identifier class _ns1__listRequest { public: /// Vector of int of length 0..unbounded. std::vector value 0; ///< Multiple elements. /// Pointer to soap context that manages this instance. struct soap *soap ; }; /// @brief Top-level root element "urn:calc":listResponse /// @brief "urn:calc":listResponse is a complexType. /// /// @note class _ns1__listResponse operations: /// - _ns1__listResponse* soap_new__ns1__listResponse(soap*) allocate and default initialize /// - _ns1__listResponse* soap_new__ns1__listResponse(soap*, int num) allocate and default initialize an array /// - _ns1__listResponse* soap_new_req__ns1__listResponse(soap*, ...) allocate, set required members /// - _ns1__listResponse* soap_new_set__ns1__listResponse(soap*, ...) allocate, set all public members /// - _ns1__listResponse::soap_default(soap*) default initialize members /// - int soap_read__ns1__listResponse(soap*, _ns1__listResponse*) deserialize from a stream /// - int soap_write__ns1__listResponse(soap*, _ns1__listResponse*) serialize to a stream /// - _ns1__listResponse* _ns1__listResponse::soap_dup(soap*) returns deep copy of _ns1__listResponse, copies the (cyclic) graph structure when a context is provided, or (cycle-pruned) tree structure with soap_set_mode(soap, SOAP_XML_TREE) (use soapcpp2 -Ec) /// - _ns1__listResponse::soap_del() deep deletes _ns1__listResponse data members, use only after _ns1__listResponse::soap_dup(NULL) (use soapcpp2 -Ed) /// - int _ns1__listResponse::soap_type() returns SOAP_TYPE__ns1__listResponse or derived type identifier class _ns1__listResponse { public: /// Element "total" of type xs:long. LONG64 total 1; ///< Required element. /// Pointer to soap context that manages this instance. struct soap *soap ; }; /******************************************************************************\ * * * Additional Top-Level Elements * * urn:calc * * * \******************************************************************************/ /******************************************************************************\ * * * Additional Top-Level Attributes * * urn:calc * * * \******************************************************************************/ /******************************************************************************\ * * * Services * * * \******************************************************************************/ //gsoap ns1 service name: CalcBinding //gsoap ns1 service type: CalcPortType //gsoap ns1 service port: http://localhost:8080/calc //gsoap ns1 service namespace: urn:calc //gsoap ns1 service transport: http://schemas.xmlsoap.org/soap/http /** @mainpage Calc Definitions @section Calc_bindings Service Bindings - @ref CalcBinding @section Calc_more More Information - @ref page_notes "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 CalcBinding Binding "CalcBinding" @section CalcBinding_operations Operations of Binding "CalcBinding" - @ref __ns1__calc - @ref __ns1__sum @section CalcBinding_ports Default endpoints of Binding "CalcBinding" - http://localhost:8080/calc @note Use wsdl2h option -Nname to change the service binding prefix name */ /******************************************************************************\ * * * Service Binding * * CalcBinding * * * \******************************************************************************/ /******************************************************************************\ * * * Service Operation * * __ns1__calc * * * \******************************************************************************/ /** Operation "__ns1__calc" of service binding "CalcBinding". - SOAP document/literal style messaging - Default endpoints: - http://localhost:8080/calc - Default SOAP action or REST location path: - "urn:calc#calc" - Addressing input action: "urn:calc#calc" - Addressing output action: "urn:calc#calcResponse" C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call___ns1__calc( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // input parameters: _ns1__calcRequest* ns1__calcRequest, // output parameters: _ns1__calcResponse &ns1__calcResponse ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int __ns1__calc( struct soap *soap, // input parameters: _ns1__calcRequest* ns1__calcRequest, // output parameters: _ns1__calcResponse &ns1__calcResponse ); @endcode C++ proxy class (defined in soapCalcBindingProxy.h generated with soapcpp2): @code class CalcBindingProxy; @endcode Important: use soapcpp2 option '-j' (or '-i') to generate improved and easy-to-use proxy classes; C++ service class (defined in soapCalcBindingService.h generated with soapcpp2): @code class CalcBindingService; @endcode Important: use soapcpp2 option '-j' (or '-i') to generate improved and easy-to-use service classes; */ //gsoap ns1 service method-protocol: calc SOAP //gsoap ns1 service method-style: calc document //gsoap ns1 service method-encoding: calc literal //gsoap ns1 service method-input-action: calc urn:calc#calc //gsoap ns1 service method-output-action: calc urn:calc#calcResponse int __ns1__calc( _ns1__calcRequest* ns1__calcRequest, ///< Input parameter _ns1__calcResponse &ns1__calcResponse ///< Output parameter ); /******************************************************************************\ * * * Service Operation * * __ns1__sum * * * \******************************************************************************/ /** Operation "__ns1__sum" of service binding "CalcBinding". - SOAP document/literal style messaging - Default endpoints: - http://localhost:8080/calc - Default SOAP action or REST location path: - "urn:calc#sum" - Addressing input action: "urn:calc#sum" - Addressing output action: "urn:calc#sumResponse" C stub function (defined in soapClient.c[pp] generated by soapcpp2): @code int soap_call___ns1__sum( struct soap *soap, NULL, // char *endpoint = NULL selects default endpoint for this operation NULL, // char *action = NULL selects default action for this operation // input parameters: _ns1__listRequest* ns1__listRequest, // output parameters: _ns1__listResponse &ns1__listResponse ); @endcode C server function (called from the service dispatcher defined in soapServer.c[pp]): @code int __ns1__sum( struct soap *soap, // input parameters: _ns1__listRequest* ns1__listRequest, // output parameters: _ns1__listResponse &ns1__listResponse ); @endcode C++ proxy class (defined in soapCalcBindingProxy.h generated with soapcpp2): @code class CalcBindingProxy; @endcode Important: use soapcpp2 option '-j' (or '-i') to generate improved and easy-to-use proxy classes; C++ service class (defined in soapCalcBindingService.h generated with soapcpp2): @code class CalcBindingService; @endcode Important: use soapcpp2 option '-j' (or '-i') to generate improved and easy-to-use service classes; */ //gsoap ns1 service method-protocol: sum SOAP //gsoap ns1 service method-style: sum document //gsoap ns1 service method-encoding: sum literal //gsoap ns1 service method-input-action: sum urn:calc#sum //gsoap ns1 service method-output-action: sum urn:calc#sumResponse int __ns1__sum( _ns1__listRequest* ns1__listRequest, ///< Input parameter _ns1__listResponse &ns1__listResponse ///< Output parameter ); /** @page CalcBinding Binding "CalcBinding" @section CalcBinding_policy_enablers Policy Enablers of Binding "CalcBinding" None specified. */ /******************************************************************************\ * * * XML Data Binding * * * \******************************************************************************/ /** @page page_XMLDataBinding XML Data Binding SOAP/XML services use data bindings that are contractually bound by WSDLs and are 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. @note 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. @note Data can be read and deserialized from: - an int file descriptor, using soap->recvfd = fd - a socket, using soap->socket = (int)... - a C++ stream (istream, stringstream), using soap->is = (istream*)... - a C string, using soap->is = (const char*)... - any input, using the soap->frecv() callback @note Data can be serialized and written to: - an int file descriptor, using soap->sendfd = (int)... - a socket, using soap->socket = (int)... - a C++ stream (ostream, stringstream), using soap->os = (ostream*)... - a C string, using soap->os = (const char**)... - any output, using the soap->fsend() callback @note The following options are available for (de)serialization control: - soap->encodingStyle = NULL; to remove SOAP 1.1/1.2 encodingStyle - soap_set_mode(soap, SOAP_XML_TREE); XML without id-ref (no cycles!) - soap_set_mode(soap, SOAP_XML_GRAPH); XML with id-ref (including cycles) - soap_set_namespaces(soap, struct Namespace *nsmap); to set xmlns bindings */ /** @section ns1 Top-level root elements of schema "urn:calc" - @ref _ns1__calcRequest @code // Reader (returns SOAP_OK on success): soap_read__ns1__calcRequest(struct soap*, _ns1__calcRequest*); // Writer (returns SOAP_OK on success): soap_write__ns1__calcRequest(struct soap*, _ns1__calcRequest*); // REST GET (returns SOAP_OK on success): soap_GET__ns1__calcRequest(struct soap*, const char *URL, _ns1__calcRequest*); // REST PUT (returns SOAP_OK on success): soap_PUT__ns1__calcRequest(struct soap*, const char *URL, _ns1__calcRequest*); // REST POST (returns SOAP_OK on success): soap_POST_send__ns1__calcRequest(struct soap*, const char *URL, _ns1__calcRequest*); soap_POST_recv__ns1__calcRequest(struct soap*, _ns1__calcRequest*); @endcode - @ref _ns1__calcResponse @code // Reader (returns SOAP_OK on success): soap_read__ns1__calcResponse(struct soap*, _ns1__calcResponse*); // Writer (returns SOAP_OK on success): soap_write__ns1__calcResponse(struct soap*, _ns1__calcResponse*); // REST GET (returns SOAP_OK on success): soap_GET__ns1__calcResponse(struct soap*, const char *URL, _ns1__calcResponse*); // REST PUT (returns SOAP_OK on success): soap_PUT__ns1__calcResponse(struct soap*, const char *URL, _ns1__calcResponse*); // REST POST (returns SOAP_OK on success): soap_POST_send__ns1__calcResponse(struct soap*, const char *URL, _ns1__calcResponse*); soap_POST_recv__ns1__calcResponse(struct soap*, _ns1__calcResponse*); @endcode - @ref _ns1__listRequest @code // Reader (returns SOAP_OK on success): soap_read__ns1__listRequest(struct soap*, _ns1__listRequest*); // Writer (returns SOAP_OK on success): soap_write__ns1__listRequest(struct soap*, _ns1__listRequest*); // REST GET (returns SOAP_OK on success): soap_GET__ns1__listRequest(struct soap*, const char *URL, _ns1__listRequest*); // REST PUT (returns SOAP_OK on success): soap_PUT__ns1__listRequest(struct soap*, const char *URL, _ns1__listRequest*); // REST POST (returns SOAP_OK on success): soap_POST_send__ns1__listRequest(struct soap*, const char *URL, _ns1__listRequest*); soap_POST_recv__ns1__listRequest(struct soap*, _ns1__listRequest*); @endcode - @ref _ns1__listResponse @code // Reader (returns SOAP_OK on success): soap_read__ns1__listResponse(struct soap*, _ns1__listResponse*); // Writer (returns SOAP_OK on success): soap_write__ns1__listResponse(struct soap*, _ns1__listResponse*); // REST GET (returns SOAP_OK on success): soap_GET__ns1__listResponse(struct soap*, const char *URL, _ns1__listResponse*); // REST PUT (returns SOAP_OK on success): soap_PUT__ns1__listResponse(struct soap*, const char *URL, _ns1__listResponse*); // REST POST (returns SOAP_OK on success): soap_POST_send__ns1__listResponse(struct soap*, const char *URL, _ns1__listResponse*); soap_POST_recv__ns1__listResponse(struct soap*, _ns1__listResponse*); @endcode */ /* End of calc.h */